NtCancelIoFileEx parameter definition mismatch #2755
-
|
In ntioapi.h, the function NtCancelIoFileEx is defined as: In addition to the above, disassembly of kernelbase where NtCancelIoFileEx is called shows the following: ; BOOL __stdcall CancelIoEx(HANDLE hFile, LPOVERLAPPED lpOverlapped) var_8 = byte ptr -8 locret_1012C0B2: Have I misunderstood/misinterpreted something or is there a real problem in the definitions ? MS says the function takes only 2 parameters but the dis-assembly clearly shows it takes 3. Additionally, one of the parameters supposedly is a pointer to an OVERLAPPED structure and not to an IO_STATUS_BLOCK. That's a lot of discrepancies in a single declaration. Comments and clarifications are most welcome. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
|
That looks like an issue with MS documentation. The function, does, in fact, have three parameters. As for the type mismatch, it's not a problem: It's also not the first time these developer notes pages being incorrect. For a long while, the neighboring page about |
Beta Was this translation helpful? Give feedback.
That looks like an issue with MS documentation. The function, does, in fact, have three parameters. As for the type mismatch, it's not a problem:
OVERLAPPEDeffectively embedsIO_STATUS_BLOCKinto itsInternalandInternalHighfields. A few Win32 APIs use that compatibility, seeDeviceIoControlfor example.It's also not the first time these developer notes pages being incorrect. For a long while, the neighboring page about
NtCreateNamedPipeFilewas completely off.