diff --git a/reactos/dll/ntdll/def/ntdll_i386.def b/reactos/dll/ntdll/def/ntdll_i386.def index 8ce9a39b45e..14e92fd96a6 100644 --- a/reactos/dll/ntdll/def/ntdll_i386.def +++ b/reactos/dll/ntdll/def/ntdll_i386.def @@ -869,7 +869,7 @@ RtlSetEnvironmentVariable@12 RtlSetGroupSecurityDescriptor@12 RtlSetHeapInformation@16 RtlSetInformationAcl@16 -;RtlSetIoCompletionCallback +RtlSetIoCompletionCallback@12 RtlSetLastWin32Error@4 RtlSetLastWin32ErrorAndNtStatusFromNtStatus@4 ;RtlSetMemoryStreamSize diff --git a/reactos/include/ndk/rtlfuncs.h b/reactos/include/ndk/rtlfuncs.h index 538be4aeb38..5f431a0f306 100644 --- a/reactos/include/ndk/rtlfuncs.h +++ b/reactos/include/ndk/rtlfuncs.h @@ -2060,6 +2060,15 @@ RtlQueueWorkItem( IN ULONG Flags ); +NTSYSAPI +NTSTATUS +NTAPI +RtlSetIoCompletionCallback( + IN HANDLE FileHandle, + IN PRTL_OVERLAPPED_COMPLETION_ROUTINE Function, + IN ULONG Flags +); + NTSYSAPI NTSTATUS NTAPI diff --git a/reactos/include/ndk/rtltypes.h b/reactos/include/ndk/rtltypes.h index 4fcf5bf9eeb..a57ab22a816 100644 --- a/reactos/include/ndk/rtltypes.h +++ b/reactos/include/ndk/rtltypes.h @@ -405,6 +405,16 @@ typedef EXCEPTION_DISPOSITION IN OUT PVOID DispatcherContext ); +// +// Callback for RtlSetIoCompletionCallback +// +typedef VOID +(NTAPI *PRTL_OVERLAPPED_COMPLETION_ROUTINE)( + ULONG, + ULONG, + PVOID +); + // // RTL Library Allocation/Free Routines // diff --git a/reactos/lib/rtl/workitem.c b/reactos/lib/rtl/workitem.c index 1d262933219..8c95aadce7c 100644 --- a/reactos/lib/rtl/workitem.c +++ b/reactos/lib/rtl/workitem.c @@ -879,3 +879,16 @@ Cleanup: return Status; } + +/* + * @unimplemented + */ +NTSTATUS +NTAPI +RtlSetIoCompletionCallback(IN HANDLE hFileHandle, + IN PRTL_OVERLAPPED_COMPLETION_ROUTINE Function, + IN ULONG Flags) +{ + UNIMPLEMENTED; + return STATUS_NOT_IMPLEMENTED; +}