PopUmpoProcessPowerMessage

NTSTATUS __stdcall PopUmpoProcessPowerMessage(POWER_MESSAGE *PowerMessage){
  NTSTATUS result; 
  POWER_MESSAGE v2; 

  switch( *PowerMessage )
  {
    case 4:
      result = PopSetNewPolicyValue(PowerMessage + 2);
      if( result < 0 )
        return result;
      break;
    case 7:
      if( *((_BYTE *)PowerMessage + 20) && PowerMessage[3] == 18 )
        PfPowerActionNotify((_EPROCESS *)5, 1i64, 0i64);
      break;
    case 8:
      PopProcessPowerRequestOverrideQueryResponse((unsigned int *)PowerMessage + 2);
      break;
    case 10:
      if( *((_BYTE *)PowerMessage + 8) )
      {
        PopAcquirePowerRequestPushLock(1u);
        *(&stru_140C23628 + 6016) = 1;
        PopPowerRequestNotificationsFlush((INT64 *)&stru_140C23628 + 757);
        PopPowerRequestNotificationsFlush((INT64 *)&stru_140C23628 + 755);
        PopReleaseRwLock((_POP_RW_LOCK *)((char *)&stru_140C23628 + 5864));
      }
      PopPowerRequestOverrideInitialize();
      break;
    case 14:
      v2 = PowerMessage[2];
      PopAcquirePolicyLock();
      dword_140C231D0 = v2;
      if( byte_140C231F1 )
      {
        PopIdleCancelAoAcDozeS4Timer(PopDozeTimerCancelledReasonAdaptiveStandbyAction);
        PopIdleArmAoAcDozeS4Timer();
      }
      PopReleasePolicyLock();
      break;
  }
  return 0;
}

Referenced by:

PopUmpoProcessMessage