PpmGetThroughputInfoCallback
NTSTATUS __stdcall PpmGetThroughputInfoCallback(_KPRCB *Prcb, UINT64 Param1, UINT64 Param2){
unsigned int v4;
NTSTATUS v6;
char v7;
unsigned __int64 FrequencyScaledActive;
UINT64 v9;
_PROC_PERF_CHECK_SNAP Snap;
v4 = Param2;
memset(&Snap, 0i64, sizeof(Snap));
v6 = 0;
if( !PpmSnapPerformanceAccumulation(Prcb, 0, Prcb != KeGetCurrentPrcb(), 0, &Snap) )
return -1073741823;
v7 = PpmPerformanceCounterShift;
if( Prcb->PowerState.Hypervisor == ProcHypervisorHvCounters )
v7 = PpmHvPerformanceCounterShift;
FrequencyScaledActive = Snap.FrequencyScaledActive;
*(_QWORD *)(Param1 + 8) = Snap.PerformanceScaledActive >> v7;
v9 = PpmConvertTime(FrequencyScaledActive, 0x64ui64, v4);
*(_QWORD *)(Param1 + 16) = Snap.PerformanceScaledKernelActive >> v7;
*(_DWORD *)Param1 = Snap.Time >> v7;
*(_DWORD *)(Param1 + 4) = Snap.Active >> v7;
*(_QWORD *)(Param1 + 24) = v9 >> v7;
return v6;
}Referenced by:
PoGetPerfStateAndParkingInfo