ntoskrnl.exe: Support event functions on kernel objects.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f57a383d09
commit
b9c621856f
|
@ -224,7 +224,7 @@ POBJECT_TYPE ExEventObjectType = &event_type;
|
|||
LONG WINAPI KeSetEvent( PRKEVENT event, KPRIORITY increment, BOOLEAN wait )
|
||||
{
|
||||
HANDLE handle;
|
||||
ULONG ret = 0;
|
||||
LONG ret = 0;
|
||||
|
||||
TRACE("event %p, increment %d, wait %u.\n", event, increment, wait);
|
||||
|
||||
|
@ -238,7 +238,11 @@ LONG WINAPI KeSetEvent( PRKEVENT event, KPRIORITY increment, BOOLEAN wait )
|
|||
}
|
||||
else
|
||||
{
|
||||
FIXME("unsupported on kernel objects\n");
|
||||
if ((handle = kernel_object_handle( event, EVENT_MODIFY_STATE )))
|
||||
{
|
||||
NtSetEvent( handle, &ret );
|
||||
NtClose( handle );
|
||||
}
|
||||
event->Header.SignalState = TRUE;
|
||||
}
|
||||
|
||||
|
@ -251,7 +255,7 @@ LONG WINAPI KeSetEvent( PRKEVENT event, KPRIORITY increment, BOOLEAN wait )
|
|||
LONG WINAPI KeResetEvent( PRKEVENT event )
|
||||
{
|
||||
HANDLE handle;
|
||||
ULONG ret = 0;
|
||||
LONG ret = 0;
|
||||
|
||||
TRACE("event %p.\n", event);
|
||||
|
||||
|
@ -265,7 +269,11 @@ LONG WINAPI KeResetEvent( PRKEVENT event )
|
|||
}
|
||||
else
|
||||
{
|
||||
FIXME("unsupported on kernel objects\n");
|
||||
if ((handle = kernel_object_handle( event, EVENT_MODIFY_STATE )))
|
||||
{
|
||||
NtResetEvent( handle, &ret );
|
||||
NtClose( handle );
|
||||
}
|
||||
event->Header.SignalState = FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -461,10 +461,8 @@ static void test_sync(void)
|
|||
ok(ret == 0, "got %#x\n", ret);
|
||||
KeResetEvent(event);
|
||||
ret = wait_single(event, 0);
|
||||
todo_wine
|
||||
ok(ret == STATUS_TIMEOUT, "got %#x\n", ret);
|
||||
ret = wait_single_handle(handle, 0);
|
||||
todo_wine
|
||||
ok(ret == STATUS_TIMEOUT, "got %#x\n", ret);
|
||||
|
||||
KeSetEvent(event, 0, FALSE);
|
||||
|
|
Loading…
Reference in New Issue