PopPepArmIdleTimer
VOID __stdcall PopPepArmIdleTimer(UINT8 ArmAlways){
unsigned __int64 v2;
if( (_DWORD)PopPepIdleStateTimeout )
{
v2 = (unsigned __int8)ExAcquireSpinLockExclusive((INT64 *)&PopIrpWorkerControlEvent + 357);
if( ArmAlways )
*(&PopIrpWorkerControlEvent + 2704) = 0;
if( !*(&PopIrpWorkerControlEvent + 2704) && *(&PopIrpWorkerControlEvent + 677) > 0 )
{
*(&PopIrpWorkerControlEvent + 2704) = 1;
KeSetCoalescableTimer(
(INT64)&PopIrpWorkerControlEvent + 2720,
-10000i64 * (unsigned int)PopPepIdleStateTimeout,
0i64,
(unsigned int)PopPepIdleStateTimeout,
(INT64)&PopIrpWorkerControlEvent + 2784);
}
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&PopIrpWorkerControlEvent + 357);
__writecr8(v2);
}
}Referenced by:
PopPepGetComponentPreferedIdleState
PopPepIdleTimeoutDpcRoutine
PopPepIdleTimeoutRoutine