[PATCH] Implement BindIoCompletionCallback

Andrey Turkin andrey.turkin at gmail.com
Tue Dec 18 14:49:17 CST 2007


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;
>>  }   
>
>




More information about the wine-devel mailing list