Andrey Turkin andrey.turkin@gmail.com writes:
It is not used in the function itself, it is only passed to user-provided callback. So, I see several possibilities:
I know it's in the callback, what I meant is that the ntdll function should not be taking a LPOVERLAPPED_COMPLETION_ROUTINE, which is a kernel32 thing, it should be taking some sort of IO_COMPLETION_CALLBACK routine, that uses an IO_STATUS_BLOCK (or probably better a void*, since it's opaque) instead of an OVERLAPPED pointer.