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