PopFxUpdateComponentPerfStateNominalChange
VOID __stdcall PopFxUpdateComponentPerfStateNominalChange(
_POP_FX_DEVICE *FxDevice,
UINT64 Component,
UINT8 DeviceTransition,
UINT64 PowerState){
unsigned int v5;
unsigned int v7;
unsigned int v8;
__int64 v9;
__int64 v10;
__int64 v11;
_PO_FX_PERF_STATE_CHANGE *CurrentPerf;
UINT64 v13;
UINT8 PerfChanged;
v5 = PowerState;
v13 = 0i64;
PerfChanged = 0;
v7 = 0;
v8 = 0;
v9 = *(_QWORD *)(*((_QWORD *)FxDevice + 104) + 8i64 * (unsigned int)Component);
v10 = *(_QWORD *)(v9 + 424);
v11 = *(_QWORD *)(v10 + 48);
if( *(_DWORD *)(v10 + 144) )
{
do
{
PopFxQueryCurrentComponentPerfState(FxDevice, (_POP_FX_COMPONENT *)v9, v8, 1u, &v13, &PerfChanged);
if( PerfChanged )
{
++v7;
*(_QWORD *)(v11 + 8) = v13;
*(_DWORD *)v11 = v8;
v11 += 16i64;
}
++v8;
}
while( v8 < *(_DWORD *)(v10 + 144) );
if( v7 )
{
*(_DWORD *)(v10 + 56) = v7;
*(_QWORD *)(v10 + 64) = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
CurrentPerf = *(_PO_FX_PERF_STATE_CHANGE **)(v10 + 48);
*(_BYTE *)(v10 + 72) = 1;
PopDiagTraceFxPerfNominalChange((_POP_FX_PERF_INFO *)v10, DeviceTransition, v5, v7, CurrentPerf);
}
}
}Referenced by:
PopPepCompleteComponentIdleStateChangeActivity
PopPepDeviceDState