PpmGetThroughputInfoCallback
__int64 __fastcall PpmGetThroughputInfoCallback(struct _KPRCB *a1, __int64 a2, unsigned int a3){
INT64 v6;
unsigned int v7;
char v8;
unsigned __int64 FrequencyScaledActive;
UINT64 v10;
_PROC_PERF_CHECK_SNAP result;
memset((INT64)&result, 0i64);
LOBYTE(v6) = a1 != KeGetCurrentPrcb();
v7 = 0;
if( (unsigned __int8)PpmSnapPerformanceAccumulation(a1, 0i64, v6, 0i64, &result) )
{
v8 = PpmPerformanceCounterShift;
if( *((_DWORD *)a1 + 8246) == 3 )
v8 = PpmHvPerformanceCounterShift;
FrequencyScaledActive = result.FrequencyScaledActive;
*(_QWORD *)(a2 + 8) = result.PerformanceScaledActive >> v8;
v10 = PpmConvertTime(FrequencyScaledActive, 0x64ui64, a3);
*(_QWORD *)(a2 + 16) = result.PerformanceScaledKernelActive >> v8;
*(_DWORD *)a2 = result.Time >> v8;
*(_DWORD *)(a2 + 4) = result.Active >> v8;
*(_QWORD *)(a2 + 24) = v10 >> v8;
}
else
{
return(unsigned int)-1073741823;
}
return v7;
}Referenced by:
PoGetPerfStateAndParkingInfo