PopPepArmIdleTimer
VOID __stdcall PopPepArmIdleTimer(UINT8 ArmAlways){
unsigned __int64 v2;
if( PopPepIdleStateTimeout )
{
v2 = ExAcquireSpinLockExclusive(&PopPepIdleTimerLock);
if( ArmAlways )
PopPepIdleTimerArmed = 0;
if( !PopPepIdleTimerArmed && PopPepPoweredIdleComponentCount > 0 )
{
PopPepIdleTimerArmed = 1;
KeSetCoalescableTimer(
(PKTIMER)&PopPepIdleTimer,
(LARGE_INTEGER)(-10000i64 * PopPepIdleStateTimeout),
0,
PopPepIdleStateTimeout,
&PopPepIdleDpc);
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&PopPepIdleTimerLock);
__writecr8(v2);
}
}Referenced by:
PopPepGetComponentPreferedIdleState
PopPepIdleTimeoutDpcRoutine
PopPepIdleTimeoutRoutine