ntdll: Stub implementations of NtCreateIoCompletion, NtSetIoCompletion, and NtRemoveIoCompletion.
Based on a patch by Rob Shearman.
This commit is contained in:
parent
7f8ad07ee0
commit
9aa468d884
|
@ -124,7 +124,7 @@
|
|||
@ stdcall NtCreateEvent(long long long long long)
|
||||
@ stub NtCreateEventPair
|
||||
@ stdcall NtCreateFile(ptr long ptr ptr long long long ptr long long ptr)
|
||||
@ stub NtCreateIoCompletion
|
||||
@ stdcall NtCreateIoCompletion(ptr long ptr long)
|
||||
# @ stub NtCreateJobObject
|
||||
# @ stub NtCreateJobSet
|
||||
@ stdcall NtCreateKey(ptr long ptr long ptr long long)
|
||||
|
@ -285,7 +285,7 @@
|
|||
@ stdcall NtReleaseMutant(long ptr)
|
||||
@ stub NtReleaseProcessMutant
|
||||
@ stdcall NtReleaseSemaphore(long long ptr)
|
||||
@ stub NtRemoveIoCompletion
|
||||
@ stdcall NtRemoveIoCompletion(ptr ptr ptr ptr ptr)
|
||||
# @ stub NtRemoveProcessDebug
|
||||
# @ stub NtRenameKey
|
||||
@ stdcall NtReplaceKey(ptr long ptr)
|
||||
|
@ -328,7 +328,7 @@
|
|||
@ stdcall NtSetInformationThread(long long ptr long)
|
||||
@ stdcall NtSetInformationToken(long long ptr long)
|
||||
@ stdcall NtSetIntervalProfile(long long)
|
||||
@ stub NtSetIoCompletion
|
||||
@ stdcall NtSetIoCompletion(ptr long ptr long long)
|
||||
@ stub NtSetLdtEntries
|
||||
@ stub NtSetLowEventPair
|
||||
@ stub NtSetLowWaitHighEventPair
|
||||
|
|
|
@ -842,3 +842,29 @@ NTSTATUS WINAPI NtDelayExecution( BOOLEAN alertable, const LARGE_INTEGER *timeou
|
|||
}
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS WINAPI NtCreateIoCompletion( PHANDLE CompletionPort, ACCESS_MASK DesiredAccess,
|
||||
POBJECT_ATTRIBUTES ObjectAttributes, ULONG NumberOfConcurrentThreads )
|
||||
{
|
||||
FIXME("(%p, %lx, %p, %ld)\n", CompletionPort, DesiredAccess,
|
||||
ObjectAttributes, NumberOfConcurrentThreads);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NTSTATUS WINAPI NtSetIoCompletion( HANDLE CompletionPort, ULONG_PTR CompletionKey,
|
||||
PIO_STATUS_BLOCK iosb, ULONG NumberOfBytesTransferred,
|
||||
ULONG NumberOfBytesToTransfer )
|
||||
{
|
||||
FIXME("(%p, %lx, %p, %ld, %ld)\n", CompletionPort, CompletionKey,
|
||||
iosb, NumberOfBytesTransferred, NumberOfBytesToTransfer);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
NTSTATUS WINAPI NtRemoveIoCompletion( HANDLE CompletionPort, PULONG_PTR CompletionKey,
|
||||
PIO_STATUS_BLOCK iosb, PULONG OperationStatus,
|
||||
PLARGE_INTEGER WaitTime )
|
||||
{
|
||||
FIXME("(%p, %p, %p, %p, %p)\n", CompletionPort, CompletionKey,
|
||||
iosb, OperationStatus, WaitTime);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
|
|
@ -1848,7 +1848,7 @@ NTSTATUS WINAPI NtReadVirtualMemory(HANDLE,const void*,void*,SIZE_T,SIZE_T*);
|
|||
NTSTATUS WINAPI NtRegisterThreadTerminatePort(HANDLE);
|
||||
NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG);
|
||||
NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG);
|
||||
NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG,PULONG,PIO_STATUS_BLOCK,PLARGE_INTEGER);
|
||||
NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PIO_STATUS_BLOCK,PULONG,PLARGE_INTEGER);
|
||||
NTSTATUS WINAPI NtReplaceKey(POBJECT_ATTRIBUTES,HANDLE,POBJECT_ATTRIBUTES);
|
||||
NTSTATUS WINAPI NtReplyPort(HANDLE,PLPC_MESSAGE);
|
||||
NTSTATUS WINAPI NtReplyWaitReceivePort(HANDLE,PULONG,PLPC_MESSAGE,PLPC_MESSAGE);
|
||||
|
@ -1877,7 +1877,7 @@ NTSTATUS WINAPI NtSetInformationProcess(HANDLE,PROCESS_INFORMATION_CLASS,PVOID,
|
|||
NTSTATUS WINAPI NtSetInformationThread(HANDLE,THREADINFOCLASS,LPCVOID,ULONG);
|
||||
NTSTATUS WINAPI NtSetInformationToken(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,ULONG);
|
||||
NTSTATUS WINAPI NtSetIntervalProfile(ULONG,KPROFILE_SOURCE);
|
||||
NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG,ULONG,NTSTATUS,ULONG);
|
||||
NTSTATUS WINAPI NtSetIoCompletion(HANDLE,ULONG_PTR,PIO_STATUS_BLOCK,ULONG,ULONG);
|
||||
NTSTATUS WINAPI NtSetLdtEntries(ULONG,LDT_ENTRY,ULONG,LDT_ENTRY);
|
||||
NTSTATUS WINAPI NtSetLowEventPair(HANDLE);
|
||||
NTSTATUS WINAPI NtSetLowWaitHighEventPair(HANDLE);
|
||||
|
@ -2331,6 +2331,12 @@ NTSTATUS WINAPI LdrQueryProcessModuleInformation(SYSTEM_MODULE_INFORMATION*, ULO
|
|||
NTSTATUS WINAPI LdrUnloadDll(HMODULE);
|
||||
NTSTATUS WINAPI LdrUnlockLoaderLock(ULONG,ULONG);
|
||||
|
||||
typedef struct _FILE_COMPLETION_INFORMATION {
|
||||
HANDLE CompletionPort;
|
||||
ULONG_PTR CompletionKey;
|
||||
} FILE_COMPLETION_INFORMATION;
|
||||
typedef FILE_COMPLETION_INFORMATION *PFILE_COMPLETION_INFORMATION;
|
||||
|
||||
/* list manipulation macros */
|
||||
#define InitializeListHead(le) (void)((le)->Flink = (le)->Blink = (le))
|
||||
#define InsertHeadList(le,e) do { PLIST_ENTRY f = (le)->Flink; (e)->Flink = f; (e)->Blink = (le); f->Blink = (e); (le)->Flink = (e); } while (0)
|
||||
|
|
Loading…
Reference in New Issue