diff --git a/ntoskrnl/ke/amd64/stubs.c b/ntoskrnl/ke/amd64/stubs.c index 7bfdb98f00e..98c420ade8f 100644 --- a/ntoskrnl/ke/amd64/stubs.c +++ b/ntoskrnl/ke/amd64/stubs.c @@ -156,9 +156,15 @@ KiIdleLoop(VOID) { Prcb->IdleHalt = 1; + /* Lower IRQL to passive */ + KeLowerIrql(PASSIVE_LEVEL); + /* Continue staying idle. Note the HAL returns with interrupts on */ Prcb->PowerState.IdleFunction(&Prcb->PowerState); + /* Raise IRQL back to DISPATCH_LEVEL */ + KfRaiseIrql(DISPATCH_LEVEL); + Prcb->IdleHalt = 0; } }