Jacek Caban : ntoskrnl.exe: Set irp context handle in dispatch_irp.

Alexandre Julliard julliard at winehq.org
Mon May 27 14:50:19 CDT 2019


Module: wine
Branch: master
Commit: 72876116068fb9d0e21d6f8c6724049eb82f4f54
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=72876116068fb9d0e21d6f8c6724049eb82f4f54

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon May 27 13:39:15 2019 +0200

ntoskrnl.exe: Set irp context handle in dispatch_irp.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index c9b56b7..acfbec8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -587,6 +587,8 @@ static void dispatch_irp( DEVICE_OBJECT *device, IRP *irp, struct dispatch_conte
     LARGE_INTEGER count;
 
     IoSetCompletionRoutine( irp, dispatch_irp_completion, context->handle, TRUE, TRUE, TRUE );
+    context->handle = 0;
+
     KeQueryTickCount( &count );  /* update the global KeTickCount */
 
     device->CurrentIrp = irp;
@@ -976,11 +978,7 @@ NTSTATUS CDECL wine_ntoskrnl_main_loop( HANDLE stop_event )
         case STATUS_SUCCESS:
             assert( context.params.type != IRP_CALL_NONE && context.params.type < ARRAY_SIZE(dispatch_funcs) );
             status = dispatch_funcs[context.params.type]( &context );
-            if (status == STATUS_SUCCESS)
-            {
-                context.handle = 0;  /* status reported by IoCompleteRequest */
-                if (!context.in_buff) context.in_size = 4096;
-            }
+            if (!context.in_buff) context.in_size = 4096;
             break;
         case STATUS_BUFFER_OVERFLOW:
             HeapFree( GetProcessHeap(), 0, context.in_buff );




More information about the wine-cvs mailing list