PpmPerfAction

VOID __stdcall PpmPerfAction(KDPC *Dpc, PVOID Context, PVOID Arg1, PVOID Arg2){
  char v5; 
  __int64 v6; 
  v5 = _InterlockedExchange((volatile __int32 *)Context + 8276, 0);
  if( (v5 & 1) != 0 )
    PpmPerfSnapDeliveredPerformance((INT64)Context + 33128, 0, 0i64, Arg2);
  if( (v5 & 2) != 0 )
    PpmParkReportUnparkedCore((__int64)Context);
  if( (v5 & 4) != 0 )
  {
    v6 = *((_QWORD *)Context + 4142);
    if( *(_BYTE *)(v6 + 124) )
    {
      *(_BYTE *)(v6 + 124) = 0;
      PpmPerfApplyProcessorState((__int64)Context, 1);
    }
    PpmPerfApplyProcessorState((__int64)Context, 0);
  }
  if( (v5 & 8) != 0 )
    PpmParkReportParkedCore((__int64)Context);
  if( (v5 & 0x10) != 0 )
    PpmParkReportSoftParkChange((__int64)Context);
  if( _InterlockedExchangeAdd(&PpmCheckCount, 0xFFFFFFFF) == 1 )
    PpmCheckContinueExecution();
}

Referenced by:

No references.