PpmUpdatePlatformIdleVeto

__int64 __fastcall PpmUpdatePlatformIdleVeto(__int64 a1){
  NTSTATUS updated; 
  __int64 v3; 
  PPM_VETO_ACCOUNTING *v4; 
  unsigned __int64 v5; 
  _KAFFINITY_EX Affinity; 

  memset(Affinity.Bitmap, 0i64, sizeof(Affinity.Bitmap));
  if( PpmPlatformStates )
  {
    v3 = *(unsigned int *)(a1 + 4);
    if( (unsigned int)v3 < *(_DWORD *)PpmPlatformStates )
    {
      v4 = (PPM_VETO_ACCOUNTING *)(PpmPlatformStates + 384 * v3);
      v5 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 122);
      updated = PpmUpdateIdleVeto(*(_BYTE *)(a1 + 12), *(unsigned int *)(a1 + 8), v4 + 2);
      if( updated >= 0 )
        PpmEventPlatformVetoRequest(*(unsigned int *)(a1 + 4), *(unsigned int *)(a1 + 8), *(_BYTE *)(a1 + 12));
      KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 122);
      __writecr8(v5);
    }
    else
    {
      return(unsigned int)-1073741811;
    }
  }
  else
  {
    return(unsigned int)-1073741637;
  }
  return(unsigned int)updated;
}

Referenced by:

No references.