Module: wine Branch: master Commit: 02c861306e97e10ac58da74c3b390247cbd87bbf URL: http://source.winehq.org/git/wine.git/?a=commit;h=02c861306e97e10ac58da74c3b...
Author: Sebastian Lackner sebastian@fds-team.de Date: Fri Oct 14 06:46:12 2016 +0200
ntoskrnl.exe: Do not abuse UserEvent to store event handle.
Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 974f946..428e700 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -2883,7 +2883,8 @@ done:
static NTSTATUS WINAPI internal_complete( DEVICE_OBJECT *device, IRP *irp, void *context ) { - SetEvent( irp->UserEvent ); + HANDLE event = context; + SetEvent( event ); return STATUS_MORE_PROCESSING_REQUIRED; }
@@ -2891,15 +2892,11 @@ static NTSTATUS WINAPI internal_complete( DEVICE_OBJECT *device, IRP *irp, void static NTSTATUS send_device_irp( DEVICE_OBJECT *device, IRP *irp, ULONG_PTR *info ) { NTSTATUS status; - IO_STACK_LOCATION *irpsp; HANDLE event = CreateEventA( NULL, FALSE, FALSE, NULL ); DEVICE_OBJECT *toplevel_device;
- irp->UserEvent = event; irp->IoStatus.u.Status = STATUS_NOT_SUPPORTED; - irpsp = IoGetNextIrpStackLocation( irp ); - irpsp->CompletionRoutine = internal_complete; - irpsp->Control = SL_INVOKE_ON_SUCCESS | SL_INVOKE_ON_ERROR | SL_INVOKE_ON_CANCEL; + IoSetCompletionRoutine( irp, internal_complete, event, TRUE, TRUE, TRUE );
toplevel_device = IoGetAttachedDeviceReference( device ); status = IoCallDriver( toplevel_device, irp );