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