Robert Shearman wrote:
Andrey Turkin wrote:
/******************************************************************************
* BindIoCompletionCallback (KERNEL32.@) */ +extern NTSTATUS WINAPI RtlSetIoCompletionCallback(HANDLE,LPOVERLAPPED_COMPLETION_ROUTINE,ULONG);
This should go in winternl.h. winternl.h may not depend on winbase.h for some reason, so this would mean either changing prototype to "(HANDLE,LPVOID,ULONG)", which seems wrong, or redefining LPOVERLAPPED_COMPLETION_ROUTINE and OVERLAPPED/LPOVERLAPPED, which seems to be too much duplication.
BOOL WINAPI BindIoCompletionCallback( HANDLE FileHandle, LPOVERLAPPED_COMPLETION_ROUTINE Function, ULONG Flags) { - FIXME("%p, %p, %d, stub!\n", FileHandle, Function, Flags); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + NTSTATUS status; + + TRACE("(%p, %p, %d)\n", FileHandle, Function, Flags); + + status = RtlSetIoCompletionCallback( FileHandle, Function, Flags ); + if (status == STATUS_SUCCESS) return TRUE; + SetLastError( RtlNtStatusToDosError(status) ); return FALSE; }