PpmInternalProcessorIdleVeto

NTSTATUS __stdcall PpmInternalProcessorIdleVeto(_XSTATE_CONFIGURATION *a1, UINT64 a2, CHAR a3){
  __int64 v4; 
  NTSTATUS v5; 
  _KPRCB *Prcb; 
  _PPM_IDLE_STATES *IdleStates; 
  __int64 v8; 

  v4 = (unsigned int)a2;
  if( (unsigned int)a1 >= (unsigned int)KeNumberProcessors_0 )
    return -1073741585;
  Prcb = KeGetPrcb((UINT64)a1);
  v5 = 0;
  IdleStates = Prcb->PowerState.IdleStates;
  if( !IdleStates )
    return -1073741653;
  if( (unsigned int)v4 >= IdleStates->ProcessorIdleCount )
    return -1073741584;
  v8 = v4;
  if( a3 )
    _InterlockedOr(&IdleStates->State[v8].VetoAccounting.VetoPresent, 0x80000000);
  else
    _InterlockedAnd(&IdleStates->State[v8].VetoAccounting.VetoPresent, 0x7FFFFFFFu);
  return v5;
}

Referenced by:

PopPowerInformationInternal