PpmPerfAction

VOID __stdcall PpmPerfAction(_KDPC *Dpc, VOID *Context, VOID *Arg1, VOID *Arg2){
  char v5; 
  __int64 v6; 

  v5 = _InterlockedExchange((volatile __int32 *)Context + 8276, 0);
  if( (v5 & 1) != 0 )
    PpmPerfSnapDeliveredPerformance((__int64)Context + 33128, 0, 0i64);
  if( (v5 & 2) != 0 )
    PpmParkReportUnparkedCore((_KPRCB *)Context);
  if( (v5 & 4) != 0 )
  {
    v6 = *((_QWORD *)Context + 4142);
    if( *(_BYTE *)(v6 + 124) )
    {
      *(_BYTE *)(v6 + 124) = 0;
      PpmPerfApplyProcessorState((_KPRCB *)Context, 1u);
    }
    PpmPerfApplyProcessorState((_KPRCB *)Context, 0);
  }
  if( (v5 & 8) != 0 )
    PpmParkReportParkedCore((_KPRCB *)Context);
  if( (v5 & 0x10) != 0 )
    PpmParkReportSoftParkChange((_KPRCB *)Context);
  if( _InterlockedExchangeAdd((_DWORD *)&PopIrpWorkerControlEvent + 316, 0xFFFFFFFF) == 1 )
    PpmCheckContinueExecution();
}

Referenced by:

No references.