[PATCH 3/5] ntoskrnl.exe: Implement KeReadStateEvent.

Zebediah Figura z.figura12 at gmail.com
Wed Jul 15 18:48:08 CDT 2020


On 7/15/20 2:59 PM, Derek Lesho wrote:
> Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
> ---
>  dlls/ntoskrnl.exe/ntoskrnl.exe.spec |  2 +-
>  dlls/ntoskrnl.exe/sync.c            | 22 ++++++++++++++++++++++
>  2 files changed, 23 insertions(+), 1 deletion(-)
> 

Can this be tested?

> diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> index 34fde20f8a4..b2d7d8b9640 100644
> --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> @@ -599,7 +599,7 @@
>  @ stdcall KeQueryTickCount(ptr)
>  @ stdcall KeQueryTimeIncrement()
>  @ stub KeRaiseUserException
> -@ stub KeReadStateEvent
> +@ stdcall KeReadStateEvent(ptr)
>  @ stub KeReadStateMutant
>  @ stub KeReadStateMutex
>  @ stub KeReadStateQueue
> diff --git a/dlls/ntoskrnl.exe/sync.c b/dlls/ntoskrnl.exe/sync.c
> index 5e06ab2f2b6..7f19ce7571b 100644
> --- a/dlls/ntoskrnl.exe/sync.c
> +++ b/dlls/ntoskrnl.exe/sync.c
> @@ -311,6 +311,28 @@ void WINAPI KeClearEvent( PRKEVENT event )
>      KeResetEvent( event );
>  }
>  
> +/***********************************************************************
> + *           KeReadStateEvent (NTOSKRNL.EXE.@)
> + */
> +LONG WINAPI KeReadStateEvent( PRKEVENT event )
> +{
> +    HANDLE handle;
> +
> +    TRACE("event %p.\n", event);
> +
> +    if (event->Header.WaitListHead.Blink == INVALID_HANDLE_VALUE)
> +    {
> +        if (!(ObOpenObjectByPointer( event, OBJ_KERNEL_HANDLE, NULL, EVENT_QUERY_STATE, NULL, KernelMode, &handle )))
> +        {
> +            EVENT_BASIC_INFORMATION event_info;
> +            if (!(NtQueryEvent( handle, EventBasicInformation, &event_info, sizeof(event_info), NULL)))
> +                event->Header.SignalState = event_info.EventState;
> +            NtClose( handle );
> +        }
> +    }
> +    return event->Header.SignalState;
> +}
> +
>  /***********************************************************************
>   *           KeInitializeSemaphore   (NTOSKRNL.EXE.@)
>   */
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200715/1552488b/attachment.sig>


More information about the wine-devel mailing list