PopFxQueryCurrentComponentPerfState
VOID __stdcall PopFxQueryCurrentComponentPerfState(
_POP_FX_DEVICE *FxDevice,
_POP_FX_COMPONENT *FxComponent,
UINT64 Set,
UINT8 Nominal,
UINT64 *CurrentPerf,
UINT8 *PerfChanged){
__int64 v6;
__int64 v8;
bool v9;
UINT64 v10;
__int128 v11;
v6 = *((_QWORD *)FxComponent + 53);
v11 = 0i64;
v8 = *(_QWORD *)(v6 + 152) + 32i64 * (unsigned int)Set;
v9 = *(_BYTE *)(v6 + 73) == 0;
LODWORD(v11) = Set;
if( v9 || !*((_QWORD *)FxDevice + 8) )
{
*CurrentPerf = *(_QWORD *)(v8 + 8);
}
else
{
PopPluginQueryCurrentComponentPerfState((__int64)FxDevice, *((_DWORD *)FxComponent + 4), (__int64)&v11);
v10 = DWORD2(v11);
if( *(_DWORD *)(*(_QWORD *)v8 + 28i64) )
v10 = *((_QWORD *)&v11 + 1);
*CurrentPerf = v10;
if( v10 != *(_QWORD *)(v8 + 8) )
{
*(_QWORD *)(v8 + 16) = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
*(_BYTE *)(v8 + 24) = Nominal;
*(_QWORD *)(v8 + 8) = *CurrentPerf;
if( PerfChanged )
*PerfChanged = 1;
return;
}
}
if( PerfChanged )
*PerfChanged = 0;
}Referenced by:
PoFxQueryCurrentComponentPerfState
PopFxUpdateComponentPerfStateNominalChange