Module: wine Branch: master Commit: bf3e23bb3629e5f29e09796cb399c8cb2c355844 URL: http://source.winehq.org/git/wine.git/?a=commit;h=bf3e23bb3629e5f29e09796cb3...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Aug 21 12:51:31 2013 +0200
ntdll: Add the keyed events entry points.
---
dlls/ntdll/ntdll.spec | 16 ++++++++-------- dlls/ntdll/sync.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/winternl.h | 4 ++++ 3 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 5caff45..e4ed913 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -129,7 +129,7 @@ @ stdcall NtCreateJobObject(ptr long ptr) # @ stub NtCreateJobSet @ stdcall NtCreateKey(ptr long ptr long ptr long long) -# @ stub NtCreateKeyedEvent +@ stdcall NtCreateKeyedEvent(ptr long ptr long) @ stdcall NtCreateMailslotFile(long long long long long long long long) @ stdcall NtCreateMutant(ptr long ptr long) @ stdcall NtCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) @@ -212,7 +212,7 @@ @ stdcall NtOpenIoCompletion(ptr long ptr) @ stdcall NtOpenJobObject(ptr long ptr) @ stdcall NtOpenKey(ptr long ptr) -# @ stub NtOpenKeyedEvent +@ stdcall NtOpenKeyedEvent(ptr long ptr) @ stdcall NtOpenMutant(ptr long ptr) @ stub NtOpenObjectAuditAlarm @ stdcall NtOpenProcess(ptr long ptr ptr) @@ -283,7 +283,7 @@ @ stdcall NtReadVirtualMemory(long ptr ptr long ptr) @ stub NtRegisterNewDevice @ stdcall NtRegisterThreadTerminatePort(ptr) -# @ stub NtReleaseKeyedEvent +@ stdcall NtReleaseKeyedEvent(long ptr long ptr) @ stdcall NtReleaseMutant(long ptr) @ stub NtReleaseProcessMutant @ stdcall NtReleaseSemaphore(long long ptr) @@ -370,7 +370,7 @@ @ stub NtVdmControl @ stub NtW32Call # @ stub NtWaitForDebugEvent -# @ stub NtWaitForKeyedEvent +@ stdcall NtWaitForKeyedEvent(long ptr long ptr) @ stdcall NtWaitForMultipleObjects(long ptr long long ptr) @ stub NtWaitForProcessMutant @ stdcall NtWaitForSingleObject(long long long) @@ -991,7 +991,7 @@ @ stdcall ZwCreateJobObject(ptr long ptr) NtCreateJobObject # @ stub ZwCreateJobSet @ stdcall ZwCreateKey(ptr long ptr long ptr long long) NtCreateKey -# @ stub ZwCreateKeyedEvent +@ stdcall ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent @ stdcall ZwCreateMailslotFile(long long long long long long long long) NtCreateMailslotFile @ stdcall ZwCreateMutant(ptr long ptr long) NtCreateMutant @ stdcall ZwCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) NtCreateNamedPipeFile @@ -1072,7 +1072,7 @@ @ stdcall ZwOpenIoCompletion(ptr long ptr) NtOpenIoCompletion @ stdcall ZwOpenJobObject(ptr long ptr) NtOpenJobObject @ stdcall ZwOpenKey(ptr long ptr) NtOpenKey -# @ stub ZwOpenKeyedEvent +@ stdcall ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent @ stdcall ZwOpenMutant(ptr long ptr) NtOpenMutant @ stub ZwOpenObjectAuditAlarm @ stdcall ZwOpenProcess(ptr long ptr ptr) NtOpenProcess @@ -1143,7 +1143,7 @@ @ stdcall ZwReadVirtualMemory(long ptr ptr long ptr) NtReadVirtualMemory @ stub ZwRegisterNewDevice @ stdcall ZwRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort -# @ stub ZwReleaseKeyedEvent +@ stdcall ZwReleaseKeyedEvent(long ptr long ptr) NtReleaseKeyedEvent @ stdcall ZwReleaseMutant(long ptr) NtReleaseMutant @ stub ZwReleaseProcessMutant @ stdcall ZwReleaseSemaphore(long long ptr) NtReleaseSemaphore @@ -1230,7 +1230,7 @@ @ stub ZwVdmControl @ stub ZwW32Call # @ stub ZwWaitForDebugEvent -# @ stub ZwWaitForKeyedEvent +@ stdcall ZwWaitForKeyedEvent(long ptr long ptr) NtWaitForKeyedEvent @ stdcall ZwWaitForMultipleObjects(long ptr long long ptr) NtWaitForMultipleObjects @ stub ZwWaitForProcessMutant @ stdcall ZwWaitForSingleObject(long long long) NtWaitForSingleObject diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index 7e3b57f..d0b6be0 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -1242,6 +1242,46 @@ NTSTATUS WINAPI NtDelayExecution( BOOLEAN alertable, const LARGE_INTEGER *timeou return STATUS_SUCCESS; }
+ +/****************************************************************************** + * NtCreateKeyedEvent (NTDLL.@) + */ +NTSTATUS WINAPI NtCreateKeyedEvent( HANDLE *handle, ACCESS_MASK access, + const OBJECT_ATTRIBUTES *attr, ULONG flags ) +{ + FIXME( "stub\n" ); + return STATUS_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * NtOpenKeyedEvent (NTDLL.@) + */ +NTSTATUS WINAPI NtOpenKeyedEvent( HANDLE *handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr ) +{ + FIXME( "stub\n" ); + return STATUS_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * NtWaitForKeyedEvent (NTDLL.@) + */ +NTSTATUS WINAPI NtWaitForKeyedEvent( HANDLE handle, const void *key, + BOOLEAN alertable, const LARGE_INTEGER *timeout ) +{ + FIXME( "stub\n" ); + return STATUS_NOT_IMPLEMENTED; +} + +/****************************************************************************** + * NtReleaseKeyedEvent (NTDLL.@) + */ +NTSTATUS WINAPI NtReleaseKeyedEvent( HANDLE handle, const void *key, + BOOLEAN alertable, const LARGE_INTEGER *timeout ) +{ + FIXME( "stub\n" ); + return STATUS_NOT_IMPLEMENTED; +} + /****************************************************************** * NtCreateIoCompletion (NTDLL.@) * ZwCreateIoCompletion (NTDLL.@) diff --git a/include/winternl.h b/include/winternl.h index d3c1ce8..41ba0a0 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -2054,6 +2054,7 @@ NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PI NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG); NTSYSAPI NTSTATUS WINAPI NtCreateJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); NTSYSAPI NTSTATUS WINAPI NtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG); +NTSYSAPI NTSTATUS WINAPI NtCreateKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG); NTSYSAPI NTSTATUS WINAPI NtCreateMailslotFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,PLARGE_INTEGER); NTSYSAPI NTSTATUS WINAPI NtCreateMutant(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*,BOOLEAN); NTSYSAPI NTSTATUS WINAPI NtCreateNamedPipeFile(PHANDLE,ULONG,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,PLARGE_INTEGER); @@ -2113,6 +2114,7 @@ NTSYSAPI NTSTATUS WINAPI NtOpenFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_ NTSYSAPI NTSTATUS WINAPI NtOpenIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES); NTSYSAPI NTSTATUS WINAPI NtOpenJobObject(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); NTSYSAPI NTSTATUS WINAPI NtOpenKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *); +NTSYSAPI NTSTATUS WINAPI NtOpenKeyedEvent(HANDLE*,ACCESS_MASK,const OBJECT_ATTRIBUTES*); NTSYSAPI NTSTATUS WINAPI NtOpenMutant(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*); NTSYSAPI NTSTATUS WINAPI NtOpenObjectAuditAlarm(PUNICODE_STRING,PHANDLE,PUNICODE_STRING,PUNICODE_STRING,PSECURITY_DESCRIPTOR,HANDLE,ACCESS_MASK,ACCESS_MASK,PPRIVILEGE_SET,BOOLEAN,BOOLEAN,PBOOLEAN); NTSYSAPI NTSTATUS WINAPI NtOpenProcess(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,const CLIENT_ID*); @@ -2175,6 +2177,7 @@ NTSYSAPI NTSTATUS WINAPI NtReadFileScatter(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID, NTSYSAPI NTSTATUS WINAPI NtReadRequestData(HANDLE,PLPC_MESSAGE,ULONG,PVOID,ULONG,PULONG); NTSYSAPI NTSTATUS WINAPI NtReadVirtualMemory(HANDLE,const void*,void*,SIZE_T,SIZE_T*); NTSYSAPI NTSTATUS WINAPI NtRegisterThreadTerminatePort(HANDLE); +NTSYSAPI NTSTATUS WINAPI NtReleaseKeyedEvent(HANDLE,const void*,BOOLEAN,const LARGE_INTEGER*); NTSYSAPI NTSTATUS WINAPI NtReleaseMutant(HANDLE,PLONG); NTSYSAPI NTSTATUS WINAPI NtReleaseSemaphore(HANDLE,ULONG,PULONG); NTSYSAPI NTSTATUS WINAPI NtRemoveIoCompletion(HANDLE,PULONG_PTR,PULONG_PTR,PIO_STATUS_BLOCK,PLARGE_INTEGER); @@ -2239,6 +2242,7 @@ NTSYSAPI NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PL NTSYSAPI NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG); NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSection(HANDLE,PVOID); NTSYSAPI NTSTATUS WINAPI NtVdmControl(ULONG,PVOID); +NTSYSAPI NTSTATUS WINAPI NtWaitForKeyedEvent(HANDLE,const void*,BOOLEAN,const LARGE_INTEGER*); NTSYSAPI NTSTATUS WINAPI NtWaitForSingleObject(HANDLE,BOOLEAN,const LARGE_INTEGER*); NTSYSAPI NTSTATUS WINAPI NtWaitForMultipleObjects(ULONG,const HANDLE*,BOOLEAN,BOOLEAN,const LARGE_INTEGER*); NTSYSAPI NTSTATUS WINAPI NtWaitHighEventPair(HANDLE);