PopDeepSleepEvaluateCallback
VOID __stdcall PopDeepSleepEvaluateCallback(VOID *Context){
unsigned __int8 i;
UINT64 v2;
unsigned __int8 v3;
bool v4;
for( i = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PopIrpWorkerControlEvent + 27);
;
i = KeAcquireSpinLockRaiseToDpc((UINT64 *)&PopIrpWorkerControlEvent + 27) )
{
v3 = i;
LOBYTE(v2) = -PopDeepSleepEnforced;
v4 = *(&PopIrpWorkerControlEvent + 52) == 0;
if( *(&PopIrpWorkerControlEvent + 193) == (*(&PopIrpWorkerControlEvent + 52) == 0) )
break;
if( *(&PopIrpWorkerControlEvent + 52) )
PopDiagTraceIdleResiliencyEnd(v2);
else
PopDiagTraceIdleResiliencyStart(v2, (unsigned int)(PopDeepSleepEnforced != 0) + 2);
*(&PopIrpWorkerControlEvent + 193) = v4;
KxReleaseSpinLock((UINT64 *)&PopIrpWorkerControlEvent + 27);
__writecr8(v3);
PpmAcquireLock((_PPM_LOCK *)((char *)&stru_140C23628 + 4728));
PoFxSendSystemLatencyUpdate();
PpmReleaseLock((INT64 *)&stru_140C23628 + 591);
}
*(&PopIrpWorkerControlEvent + 144) = 0;
KxReleaseSpinLock((UINT64 *)&PopIrpWorkerControlEvent + 27);
__writecr8(v3);
}Referenced by:
No references.