From eb45a75a2e76e9716d08ae35cc2512b02e3bf85d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 16 Jul 2020 10:31:21 +0200 Subject: [PATCH] ntdll: Use syscall thunks for keyed event functions. Signed-off-by: Alexandre Julliard --- dlls/ntdll/ntdll.spec | 16 ++++++++-------- dlls/ntdll/sync.c | 35 ----------------------------------- dlls/ntdll/unix/loader.c | 4 ---- dlls/ntdll/unixlib.h | 10 +--------- 4 files changed, 9 insertions(+), 56 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 0183a10cab6..016165b7c0b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -168,7 +168,7 @@ # @ stub NtCreateJobSet @ stdcall NtCreateKey(ptr long ptr long ptr long ptr) @ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long ptr) -@ stdcall NtCreateKeyedEvent(ptr long ptr long) +@ stdcall -syscall NtCreateKeyedEvent(ptr long ptr long) @ stdcall NtCreateLowBoxToken(ptr long long ptr ptr long ptr long ptr) @ stdcall NtCreateMailslotFile(ptr long ptr ptr long long long ptr) @ stdcall -syscall NtCreateMutant(ptr long ptr long) @@ -260,7 +260,7 @@ @ stdcall NtOpenKeyEx(ptr long ptr long) @ stdcall NtOpenKeyTransacted(ptr long ptr long) @ stdcall NtOpenKeyTransactedEx(ptr long ptr long long) -@ stdcall NtOpenKeyedEvent(ptr long ptr) +@ stdcall -syscall NtOpenKeyedEvent(ptr long ptr) @ stdcall -syscall NtOpenMutant(ptr long ptr) @ stub NtOpenObjectAuditAlarm @ stdcall NtOpenProcess(ptr long ptr ptr) @@ -333,7 +333,7 @@ @ stdcall NtReadVirtualMemory(long ptr ptr long ptr) @ stub NtRegisterNewDevice @ stdcall NtRegisterThreadTerminatePort(ptr) -@ stdcall NtReleaseKeyedEvent(long ptr long ptr) +@ stdcall -syscall NtReleaseKeyedEvent(long ptr long ptr) @ stdcall -syscall NtReleaseMutant(long ptr) @ stub NtReleaseProcessMutant @ stdcall -syscall NtReleaseSemaphore(long long ptr) @@ -422,7 +422,7 @@ @ stub NtVdmControl @ stub NtW32Call # @ stub NtWaitForDebugEvent -@ stdcall NtWaitForKeyedEvent(long ptr long ptr) +@ stdcall -syscall NtWaitForKeyedEvent(long ptr long ptr) @ stdcall -syscall NtWaitForMultipleObjects(long ptr long long ptr) @ stub NtWaitForProcessMutant @ stdcall -syscall NtWaitForSingleObject(long long ptr) @@ -1157,7 +1157,7 @@ # @ stub ZwCreateJobSet @ stdcall -private ZwCreateKey(ptr long ptr long ptr long ptr) NtCreateKey @ stdcall -private ZwCreateKeyTransacted(ptr long ptr long ptr long long ptr) NtCreateKeyTransacted -@ stdcall -private ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent +@ stdcall -private -syscall ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent @ stdcall -private ZwCreateMailslotFile(ptr long ptr ptr long long long ptr) NtCreateMailslotFile @ stdcall -private -syscall ZwCreateMutant(ptr long ptr long) NtCreateMutant @ stdcall -private ZwCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) NtCreateNamedPipeFile @@ -1244,7 +1244,7 @@ @ stdcall -private ZwOpenKeyEx(ptr long ptr long) NtOpenKeyEx @ stdcall -private ZwOpenKeyTransacted(ptr long ptr long) NtOpenKeyTransacted @ stdcall -private ZwOpenKeyTransactedEx(ptr long ptr long long) NtOpenKeyTransactedEx -@ stdcall -private ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent +@ stdcall -private -syscall ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent @ stdcall -private -syscall ZwOpenMutant(ptr long ptr) NtOpenMutant @ stub ZwOpenObjectAuditAlarm @ stdcall -private ZwOpenProcess(ptr long ptr ptr) NtOpenProcess @@ -1317,7 +1317,7 @@ @ stdcall -private ZwReadVirtualMemory(long ptr ptr long ptr) NtReadVirtualMemory @ stub ZwRegisterNewDevice @ stdcall -private ZwRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort -@ stdcall -private ZwReleaseKeyedEvent(long ptr long ptr) NtReleaseKeyedEvent +@ stdcall -private -syscall ZwReleaseKeyedEvent(long ptr long ptr) NtReleaseKeyedEvent @ stdcall -private -syscall ZwReleaseMutant(long ptr) NtReleaseMutant @ stub ZwReleaseProcessMutant @ stdcall -private -syscall ZwReleaseSemaphore(long long ptr) NtReleaseSemaphore @@ -1406,7 +1406,7 @@ @ stub ZwVdmControl @ stub ZwW32Call # @ stub ZwWaitForDebugEvent -@ stdcall -private ZwWaitForKeyedEvent(long ptr long ptr) NtWaitForKeyedEvent +@ stdcall -private -syscall ZwWaitForKeyedEvent(long ptr long ptr) NtWaitForKeyedEvent @ stdcall -private -syscall ZwWaitForMultipleObjects(long ptr long long ptr) NtWaitForMultipleObjects @ stub ZwWaitForProcessMutant @ stdcall -private -syscall ZwWaitForSingleObject(long long ptr) NtWaitForSingleObject diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index a6666e042e0..173f8c4b487 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -167,41 +167,6 @@ NTSTATUS WINAPI NtSetTimerResolution(IN ULONG resolution, -/****************************************************************************** - * NtCreateKeyedEvent (NTDLL.@) - */ -NTSTATUS WINAPI NtCreateKeyedEvent( HANDLE *handle, ACCESS_MASK access, - const OBJECT_ATTRIBUTES *attr, ULONG flags ) -{ - return unix_funcs->NtCreateKeyedEvent( handle, access, attr, flags ); -} - -/****************************************************************************** - * NtOpenKeyedEvent (NTDLL.@) - */ -NTSTATUS WINAPI NtOpenKeyedEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr ) -{ - return unix_funcs->NtOpenKeyedEvent( handle, access, attr ); -} - -/****************************************************************************** - * NtWaitForKeyedEvent (NTDLL.@) - */ -NTSTATUS WINAPI NtWaitForKeyedEvent( HANDLE handle, const void *key, - BOOLEAN alertable, const LARGE_INTEGER *timeout ) -{ - return unix_funcs->NtWaitForKeyedEvent( handle, key, alertable, timeout ); -} - -/****************************************************************************** - * NtReleaseKeyedEvent (NTDLL.@) - */ -NTSTATUS WINAPI NtReleaseKeyedEvent( HANDLE handle, const void *key, - BOOLEAN alertable, const LARGE_INTEGER *timeout ) -{ - return unix_funcs->NtReleaseKeyedEvent( handle, key, alertable, timeout ); -} - /****************************************************************** * NtCreateIoCompletion (NTDLL.@) * ZwCreateIoCompletion (NTDLL.@) diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index d2ebeae935a..3a519d64d8f 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -1365,7 +1365,6 @@ static struct unix_funcs unix_funcs = NtClose, NtContinue, NtCreateIoCompletion, - NtCreateKeyedEvent, NtCreateMailslotFile, NtCreateNamedPipeFile, NtCreateSection, @@ -1388,7 +1387,6 @@ static struct unix_funcs unix_funcs = NtMapViewOfSection, NtNotifyChangeDirectoryFile, NtOpenIoCompletion, - NtOpenKeyedEvent, NtOpenProcess, NtOpenSection, NtOpenThread, @@ -1414,7 +1412,6 @@ static struct unix_funcs unix_funcs = NtReadFile, NtReadFileScatter, NtReadVirtualMemory, - NtReleaseKeyedEvent, NtRemoveIoCompletion, NtRemoveIoCompletionEx, NtResetWriteWatch, @@ -1435,7 +1432,6 @@ static struct unix_funcs unix_funcs = NtTerminateThread, NtUnlockVirtualMemory, NtUnmapViewOfSection, - NtWaitForKeyedEvent, NtWriteFile, NtWriteFileGather, NtWriteVirtualMemory, diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h index 9f83b30c409..36919364b0c 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct msghdr; struct _DISPATCHER_CONTEXT; /* increment this when you change the function table */ -#define NTDLL_UNIXLIB_VERSION 80 +#define NTDLL_UNIXLIB_VERSION 81 struct unix_funcs { @@ -42,8 +42,6 @@ struct unix_funcs NTSTATUS (WINAPI *NtContinue)( CONTEXT *context, BOOLEAN alertable ); NTSTATUS (WINAPI *NtCreateIoCompletion)( HANDLE *handle, ACCESS_MASK access, OBJECT_ATTRIBUTES *attr, ULONG threads ); - NTSTATUS (WINAPI *NtCreateKeyedEvent)( HANDLE *handle, ACCESS_MASK access, - const OBJECT_ATTRIBUTES *attr, ULONG flags ); NTSTATUS (WINAPI *NtCreateMailslotFile)( HANDLE *handle, ULONG access, OBJECT_ATTRIBUTES *attr, IO_STATUS_BLOCK *io, ULONG options, ULONG quota, ULONG msg_size, LARGE_INTEGER *timeout ); @@ -101,8 +99,6 @@ struct unix_funcs ULONG filter, BOOLEAN subtree ); NTSTATUS (WINAPI *NtOpenIoCompletion)( HANDLE *handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr ); - NTSTATUS (WINAPI *NtOpenKeyedEvent)( HANDLE *handle, ACCESS_MASK access, - const OBJECT_ATTRIBUTES *attr ); NTSTATUS (WINAPI *NtOpenProcess)( HANDLE *handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, const CLIENT_ID *id ); NTSTATUS (WINAPI *NtOpenSection)( HANDLE *handle, ACCESS_MASK access, @@ -158,8 +154,6 @@ struct unix_funcs LARGE_INTEGER *offset, ULONG *key ); NTSTATUS (WINAPI *NtReadVirtualMemory)( HANDLE process, const void *addr, void *buffer, SIZE_T size, SIZE_T *bytes_read ); - NTSTATUS (WINAPI *NtReleaseKeyedEvent)( HANDLE handle, const void *key, - BOOLEAN alertable, const LARGE_INTEGER *timeout ); NTSTATUS (WINAPI *NtRemoveIoCompletion)( HANDLE handle, ULONG_PTR *key, ULONG_PTR *value, IO_STATUS_BLOCK *io, LARGE_INTEGER *timeout ); NTSTATUS (WINAPI *NtRemoveIoCompletionEx)( HANDLE handle, FILE_IO_COMPLETION_INFORMATION *info, @@ -190,8 +184,6 @@ struct unix_funcs NTSTATUS (WINAPI *NtUnlockVirtualMemory)( HANDLE process, PVOID *addr, SIZE_T *size, ULONG unknown ); NTSTATUS (WINAPI *NtUnmapViewOfSection)( HANDLE process, PVOID addr ); - NTSTATUS (WINAPI *NtWaitForKeyedEvent)( HANDLE handle, const void *key, BOOLEAN alertable, - const LARGE_INTEGER *timeout ); NTSTATUS (WINAPI *NtWriteFile)( HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc, void *apc_user, IO_STATUS_BLOCK *io, const void *buffer, ULONG length, LARGE_INTEGER *offset, ULONG *key );