PopPdcIdleResiliencyCallback
INT64 __fastcall PopPdcIdleResiliencyCallback(INT64 a1, UINT8 a2){
int v2;
unsigned int v3;
__int64 v4;
__int64 v5;
__int64 v6;
__int64 v7;
INT64 Time;
INT64 v9;
int Data;
v2 = a2;
v3 = a1;
PopAcquirePolicyLock();
PopPdcIdleResiliency = v2;
Data = v2;
PopSetPowerSettingValueAcDc(&GUID_PDC_IDLE_RESILIENCY_ENGAGED, 4ui64, &Data);
PopCheckResiliencyScenarios();
PopAccumulateNonActivatedCpuTime(v2, &qword_140C4FCA8, &qword_140C4FCB0);
Time = PpmQueryTime(v5, v4, v6, v7);
v9 = Time;
if( (_BYTE)v2 )
{
qword_140C4FC78 = Time;
if( (PopFxDeviceAccountingLevel & 4) != 0 )
PopFxResumeDeviceAccounting();
PpmIdleCsVetoAccountingResiliencyUpdate(1u);
PopUpdateNonAttributedCpuTimeReference(0);
PopDripsWatchdogStartWatchdog();
PpmDisableHighPerfRequestDeferredExpiration(1);
PopFxBeginDeviceIRPhaseAccounting(v9);
}
else
{
SourceTime += Time - qword_140C4FC78;
PopFxEndDeviceIRPhaseAccounting(Time);
if( (PopFxDeviceAccountingLevel & 4) != 0 )
PopFxPauseDeviceAccounting();
PpmIdleCsVetoAccountingResiliencyUpdate(0);
PopUpdateNonAttributedCpuTimeReference(1u);
PopDripsWatchdogStopWatchdog();
PpmDisableHighPerfRequestDeferredExpiration(0);
}
PopReleasePolicyLock();
PopIdleWakeNotifyIdleResiliencyState(v2);
return PopDirectedDripsIdleResiliencyCallback(v3, v2);
}Referenced by:
PdcPoResiliencyClient