https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f944f3a6cdae3a09c21d18...
commit f944f3a6cdae3a09c21d18a7924eb3beb4ee584f Author: Timo Kreuzer timo.kreuzer@reactos.org AuthorDate: Thu May 30 15:44:56 2019 +0200 Commit: Timo Kreuzer timo.kreuzer@reactos.org CommitDate: Tue Dec 31 09:43:14 2019 +0100
[NTOS] In KeWaitFor*Object(s) assert that the current IRQL is SYNCH_LEVEL. not DISPATCH_LEVEL, since acquiring the dispatcher lock raises to SYNCH_LEVEL, which is != DISPATCH_LEVEL on x64 and SMP builds. --- ntoskrnl/ke/wait.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ntoskrnl/ke/wait.c b/ntoskrnl/ke/wait.c index ed81484ab3e..bae1e8fcd60 100644 --- a/ntoskrnl/ke/wait.c +++ b/ntoskrnl/ke/wait.c @@ -431,7 +431,7 @@ KeWaitForSingleObject(IN PVOID Object, ULONG Hand = 0;
if (Thread->WaitNext) - ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); + ASSERT(KeGetCurrentIrql() == SYNCH_LEVEL); else ASSERT(KeGetCurrentIrql() < DISPATCH_LEVEL || (KeGetCurrentIrql() == DISPATCH_LEVEL && @@ -604,7 +604,7 @@ KeWaitForMultipleObjects(IN ULONG Count, ULONG Index, Hand = 0;
if (Thread->WaitNext) - ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); + ASSERT(KeGetCurrentIrql() == SYNCH_LEVEL); else if (KeGetCurrentIrql() == DISPATCH_LEVEL && (!Timeout || Timeout->QuadPart != 0)) {