KiForceIdleStopDpcRoutine
VOID __stdcall KiForceIdleStopDpcRoutine(
_KDPC *Dpc,
VOID *DeferredContext,
VOID *SystemArgument1,
VOID *SystemArgument2){
INT64 v4;
NPTEXTMETRIC *v5;
__int64 SpinCount[3];
KiForceIdleUpdateSchedulerParkState(0);
_disable();
LODWORD(SpinCount[0]) = 0;
while( _interlockedbittestandset64((_DWORD *)&KiSwapEvent + 42, 0i64) )
{
do
KeYieldProcessorEx((UINT64 *)SpinCount);
while( *(&KiSwapEvent + 21) );
}
KiForceIdleWatchdogResetCount = 0;
KiForceIdleActiveLastStartTime = 0i64;
KiSetForceIdleState(*(&KiSwapEvent + 20) != 0i64 ? 2 : 0, v4, v5);
_InterlockedAnd64((_QWORD *)&KiSwapEvent + 21, 0i64);
_enable();
}Referenced by:
No references.