Jacek Caban : ntoskrnl.exe: Dispatch server IRPs in critical region.

Alexandre Julliard julliard at winehq.org
Thu May 30 16:27:13 CDT 2019


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

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);
 }




More information about the wine-cvs mailing list