Sebastian Lackner : ntoskrnl.exe: Do not abuse UserEvent to store event handle.
Alexandre Julliard
julliard at winehq.org
Fri Oct 14 13:46:54 CDT 2016
Module: wine
Branch: master
Commit: 02c861306e97e10ac58da74c3b390247cbd87bbf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=02c861306e97e10ac58da74c3b390247cbd87bbf
Author: Sebastian Lackner <sebastian at 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 at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at 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 );
More information about the wine-cvs
mailing list