Module: wine Branch: master Commit: 72876116068fb9d0e21d6f8c6724049eb82f4f54 URL: https://source.winehq.org/git/wine.git/?a=commit;h=72876116068fb9d0e21d6f8c6...
Author: Jacek Caban jacek@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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 );