ntdll: Fix the NtCreateEvent prototype.
It takes an event type, not a manual reset flag.
This commit is contained in:
parent
6299544cdd
commit
3b67ad9bd4
|
@ -1195,7 +1195,7 @@ static BOOL start_console_renderer(STARTUPINFOA* si)
|
||||||
attr.SecurityDescriptor = NULL;
|
attr.SecurityDescriptor = NULL;
|
||||||
attr.SecurityQualityOfService = NULL;
|
attr.SecurityQualityOfService = NULL;
|
||||||
|
|
||||||
NtCreateEvent(&hEvent, EVENT_ALL_ACCESS, &attr, TRUE, FALSE);
|
NtCreateEvent(&hEvent, EVENT_ALL_ACCESS, &attr, NotificationEvent, FALSE);
|
||||||
if (!hEvent) return FALSE;
|
if (!hEvent) return FALSE;
|
||||||
|
|
||||||
/* first try environment variable */
|
/* first try environment variable */
|
||||||
|
|
|
@ -366,7 +366,7 @@ static int start_debugger_atomic(PEXCEPTION_POINTERS epointers)
|
||||||
|
|
||||||
/* ask for manual reset, so that once the debugger is started,
|
/* ask for manual reset, so that once the debugger is started,
|
||||||
* every thread will know it */
|
* every thread will know it */
|
||||||
NtCreateEvent( &hEvent, EVENT_ALL_ACCESS, &attr, TRUE, FALSE );
|
NtCreateEvent( &hEvent, EVENT_ALL_ACCESS, &attr, NotificationEvent, FALSE );
|
||||||
if (InterlockedCompareExchangePointer( &hRunOnce, hEvent, 0 ) == 0)
|
if (InterlockedCompareExchangePointer( &hRunOnce, hEvent, 0 ) == 0)
|
||||||
{
|
{
|
||||||
/* ok, our event has been set... we're the winning thread */
|
/* ok, our event has been set... we're the winning thread */
|
||||||
|
|
|
@ -489,7 +489,8 @@ HANDLE WINAPI CreateEventExW( SECURITY_ATTRIBUTES *sa, LPCWSTR name, DWORD flags
|
||||||
attr.RootDirectory = get_BaseNamedObjects_handle();
|
attr.RootDirectory = get_BaseNamedObjects_handle();
|
||||||
}
|
}
|
||||||
|
|
||||||
status = NtCreateEvent( &ret, access, &attr, (flags & CREATE_EVENT_MANUAL_RESET) != 0,
|
status = NtCreateEvent( &ret, access, &attr,
|
||||||
|
(flags & CREATE_EVENT_MANUAL_RESET) ? NotificationEvent : SynchronizationEvent,
|
||||||
(flags & CREATE_EVENT_INITIAL_SET) != 0 );
|
(flags & CREATE_EVENT_INITIAL_SET) != 0 );
|
||||||
if (status == STATUS_OBJECT_NAME_EXISTS)
|
if (status == STATUS_OBJECT_NAME_EXISTS)
|
||||||
SetLastError( ERROR_ALREADY_EXISTS );
|
SetLastError( ERROR_ALREADY_EXISTS );
|
||||||
|
|
|
@ -350,7 +350,7 @@ static TDB *TASK_Create( NE_MODULE *pModule, UINT16 cmdShow, LPCSTR cmdline, BYT
|
||||||
/* Create scheduler event for 16-bit tasks */
|
/* Create scheduler event for 16-bit tasks */
|
||||||
|
|
||||||
if ( !(pTask->flags & TDBF_WIN32) )
|
if ( !(pTask->flags & TDBF_WIN32) )
|
||||||
NtCreateEvent( &pTask->hEvent, EVENT_ALL_ACCESS, NULL, TRUE, FALSE );
|
NtCreateEvent( &pTask->hEvent, EVENT_ALL_ACCESS, NULL, NotificationEvent, FALSE );
|
||||||
|
|
||||||
if (!initial_task) initial_task = hTask;
|
if (!initial_task) initial_task = hTask;
|
||||||
|
|
||||||
|
|
|
@ -651,7 +651,7 @@ NTSTATUS WINAPI NtNotifyChangeKey(
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES attr;
|
OBJECT_ATTRIBUTES attr;
|
||||||
InitializeObjectAttributes( &attr, NULL, 0, NULL, NULL );
|
InitializeObjectAttributes( &attr, NULL, 0, NULL, NULL );
|
||||||
ret = NtCreateEvent( &Event, EVENT_ALL_ACCESS, &attr, FALSE, FALSE );
|
ret = NtCreateEvent( &Event, EVENT_ALL_ACCESS, &attr, SynchronizationEvent, FALSE );
|
||||||
if (ret != STATUS_SUCCESS)
|
if (ret != STATUS_SUCCESS)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1363,7 +1363,7 @@ NTSTATUS COMM_DeviceIoControl(HANDLE hDevice,
|
||||||
attr.Attributes = OBJ_CASE_INSENSITIVE | OBJ_OPENIF;
|
attr.Attributes = OBJ_CASE_INSENSITIVE | OBJ_OPENIF;
|
||||||
attr.SecurityDescriptor = NULL;
|
attr.SecurityDescriptor = NULL;
|
||||||
attr.SecurityQualityOfService = NULL;
|
attr.SecurityQualityOfService = NULL;
|
||||||
status = NtCreateEvent(&hev, EVENT_ALL_ACCESS, &attr, FALSE, FALSE);
|
status = NtCreateEvent(&hev, EVENT_ALL_ACCESS, &attr, SynchronizationEvent, FALSE);
|
||||||
|
|
||||||
if (status) goto done;
|
if (status) goto done;
|
||||||
}
|
}
|
||||||
|
|
|
@ -247,12 +247,8 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, PULONG previous
|
||||||
* NtCreateEvent (NTDLL.@)
|
* NtCreateEvent (NTDLL.@)
|
||||||
* ZwCreateEvent (NTDLL.@)
|
* ZwCreateEvent (NTDLL.@)
|
||||||
*/
|
*/
|
||||||
NTSTATUS WINAPI NtCreateEvent(
|
NTSTATUS WINAPI NtCreateEvent( PHANDLE EventHandle, ACCESS_MASK DesiredAccess,
|
||||||
OUT PHANDLE EventHandle,
|
const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN InitialState)
|
||||||
IN ACCESS_MASK DesiredAccess,
|
|
||||||
IN const OBJECT_ATTRIBUTES *attr,
|
|
||||||
IN BOOLEAN ManualReset,
|
|
||||||
IN BOOLEAN InitialState)
|
|
||||||
{
|
{
|
||||||
DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0;
|
DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0;
|
||||||
NTSTATUS ret;
|
NTSTATUS ret;
|
||||||
|
@ -274,7 +270,7 @@ NTSTATUS WINAPI NtCreateEvent(
|
||||||
{
|
{
|
||||||
req->access = DesiredAccess;
|
req->access = DesiredAccess;
|
||||||
req->attributes = (attr) ? attr->Attributes : 0;
|
req->attributes = (attr) ? attr->Attributes : 0;
|
||||||
req->manual_reset = ManualReset;
|
req->manual_reset = (type == NotificationEvent);
|
||||||
req->initial_state = InitialState;
|
req->initial_state = InitialState;
|
||||||
wine_server_add_data( req, &objattr, sizeof(objattr) );
|
wine_server_add_data( req, &objattr, sizeof(objattr) );
|
||||||
if (objattr.sd_len) wine_server_add_data( req, sd, objattr.sd_len );
|
if (objattr.sd_len) wine_server_add_data( req, sd, objattr.sd_len );
|
||||||
|
|
|
@ -440,7 +440,7 @@ NTSTATUS WINAPI RtlRegisterWait(PHANDLE NewWaitObject, HANDLE Object,
|
||||||
wait_work_item->DeleteCount = 0;
|
wait_work_item->DeleteCount = 0;
|
||||||
wait_work_item->CompletionEvent = NULL;
|
wait_work_item->CompletionEvent = NULL;
|
||||||
|
|
||||||
status = NtCreateEvent( &wait_work_item->CancelEvent, EVENT_ALL_ACCESS, NULL, TRUE, FALSE );
|
status = NtCreateEvent( &wait_work_item->CancelEvent, EVENT_ALL_ACCESS, NULL, NotificationEvent, FALSE );
|
||||||
if (status != STATUS_SUCCESS)
|
if (status != STATUS_SUCCESS)
|
||||||
{
|
{
|
||||||
RtlFreeHeap( GetProcessHeap(), 0, wait_work_item );
|
RtlFreeHeap( GetProcessHeap(), 0, wait_work_item );
|
||||||
|
@ -485,7 +485,7 @@ NTSTATUS WINAPI RtlDeregisterWaitEx(HANDLE WaitHandle, HANDLE CompletionEvent)
|
||||||
{
|
{
|
||||||
if (CompletionEvent == INVALID_HANDLE_VALUE)
|
if (CompletionEvent == INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
status = NtCreateEvent( &CompletionEvent, EVENT_ALL_ACCESS, NULL, TRUE, FALSE );
|
status = NtCreateEvent( &CompletionEvent, EVENT_ALL_ACCESS, NULL, NotificationEvent, FALSE );
|
||||||
if (status != STATUS_SUCCESS)
|
if (status != STATUS_SUCCESS)
|
||||||
return status;
|
return status;
|
||||||
interlocked_xchg_ptr( &wait_work_item->CompletionEvent, CompletionEvent );
|
interlocked_xchg_ptr( &wait_work_item->CompletionEvent, CompletionEvent );
|
||||||
|
@ -778,7 +778,7 @@ NTSTATUS WINAPI RtlCreateTimerQueue(PHANDLE NewTimerQueue)
|
||||||
RtlInitializeCriticalSection(&q->cs);
|
RtlInitializeCriticalSection(&q->cs);
|
||||||
list_init(&q->timers);
|
list_init(&q->timers);
|
||||||
q->quit = FALSE;
|
q->quit = FALSE;
|
||||||
status = NtCreateEvent(&q->event, EVENT_ALL_ACCESS, NULL, FALSE, FALSE);
|
status = NtCreateEvent(&q->event, EVENT_ALL_ACCESS, NULL, SynchronizationEvent, FALSE);
|
||||||
if (status != STATUS_SUCCESS)
|
if (status != STATUS_SUCCESS)
|
||||||
{
|
{
|
||||||
RtlFreeHeap(GetProcessHeap(), 0, q);
|
RtlFreeHeap(GetProcessHeap(), 0, q);
|
||||||
|
@ -1013,7 +1013,7 @@ NTSTATUS WINAPI RtlDeleteTimer(HANDLE TimerQueue, HANDLE Timer,
|
||||||
return STATUS_INVALID_PARAMETER_1;
|
return STATUS_INVALID_PARAMETER_1;
|
||||||
q = t->q;
|
q = t->q;
|
||||||
if (CompletionEvent == INVALID_HANDLE_VALUE)
|
if (CompletionEvent == INVALID_HANDLE_VALUE)
|
||||||
status = NtCreateEvent(&event, EVENT_ALL_ACCESS, NULL, FALSE, FALSE);
|
status = NtCreateEvent(&event, EVENT_ALL_ACCESS, NULL, SynchronizationEvent, FALSE);
|
||||||
else if (CompletionEvent)
|
else if (CompletionEvent)
|
||||||
event = CompletionEvent;
|
event = CompletionEvent;
|
||||||
|
|
||||||
|
|
|
@ -1902,7 +1902,7 @@ NTSYSAPI NTSTATUS WINAPI NtCompleteConnectPort(HANDLE);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
|
NTSYSAPI NTSTATUS WINAPI NtConnectPort(PHANDLE,PUNICODE_STRING,PSECURITY_QUALITY_OF_SERVICE,PLPC_SECTION_WRITE,PLPC_SECTION_READ,PULONG,PVOID,PULONG);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN);
|
NTSYSAPI NTSTATUS WINAPI NtContinue(PCONTEXT,BOOLEAN);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
NTSYSAPI NTSTATUS WINAPI NtCreateDirectoryObject(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,BOOLEAN,BOOLEAN);
|
NTSYSAPI NTSTATUS WINAPI NtCreateEvent(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES *,EVENT_TYPE,BOOLEAN);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtCreateEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
NTSYSAPI NTSTATUS WINAPI NtCreateEventPair(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
|
NTSYSAPI NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
|
||||||
NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG);
|
NTSYSAPI NTSTATUS WINAPI NtCreateIoCompletion(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,ULONG);
|
||||||
|
|
Loading…
Reference in New Issue