Jacek Caban : ntoskrnl.exe: Dispatch server IRPs in critical region.
Module: wine Branch: master Commit: e80b507f1e0ded2eee92a75248b81b8ea9ecc767 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e80b507f1e0ded2eee92a7524... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu May 30 13:11:59 2019 +0200 ntoskrnl.exe: Dispatch server IRPs in critical region. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntoskrnl.exe/ntoskrnl.c | 2 ++ dlls/ntoskrnl.exe/tests/driver.c | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 14b5a1a..df8c4c1 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -602,7 +602,9 @@ static void dispatch_irp( DEVICE_OBJECT *device, IRP *irp, struct dispatch_conte context->irp = irp; device->CurrentIrp = irp; + KeEnterCriticalRegion(); IoCallDriver( device, irp ); + KeLeaveCriticalRegion(); device->CurrentIrp = NULL; } diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c index 69a7d78..b61e970 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c @@ -386,7 +386,6 @@ static void test_critical_region(BOOL is_dispatcher) KeLeaveCriticalRegion(); result = KeAreApcsDisabled(); - todo_wine_if(is_dispatcher) ok(result == is_dispatcher || broken(is_dispatcher && !result), "KeAreApcsDisabled returned %x\n", result); }
participants (1)
-
Alexandre Julliard