PopDeepSleepSetDisengageReason

INT64 __fastcall PopDeepSleepSetDisengageReason(INT64 a1){
  UINT64 v1; 
  unsigned int v2; 
  EVENT_DESCRIPTOR *v3; 
  int v4; 
  unsigned __int8 v5; 
  unsigned __int64 v6; 
  INT64 v7; 
  INT64 result; 
  v2 = a1;
  KeAcquireSpinLockRaiseToDpc(&PopDeepSleepDisengageReasonLock, v1);
  v4 = PopDeepSleepDisengageReasonMask;
  v6 = v5;
  v7 = (unsigned int)PopDeepSleepDisengageReasonMask | (1 << v2);
  LODWORD(PopDeepSleepDisengageReasonMask) = v7;
  if( v4 != (_DWORD)v7 )
  {
    PopDiagTraceSetDeepSleepConstraint(v2, v7, v3);
    PopDeepSleepResiliencyPhaseAccountingUpdate(v2, 1);
    if( !v4 )
    {
      if( PopIsForceIdleSet )
      {
        KeClearForceIdle();
        PopIsForceIdleSet = 0;
      }
      if( !PopDeepSleepEvaluateWorkItemQueued )
      {
        PopDeepSleepEvaluateWorkItemQueued = 1;
        ExQueueWorkItem(&PopDeepSleepEvaluateWorkItem, DelayedWorkQueue);
      }
    }
  }
  KxReleaseSpinLock(&PopDeepSleepDisengageReasonLock);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v6);
  return result;
}

Referenced by:

PopCheckResiliencyScenarios
PopDirectedDripsIdleResiliencyCallback
PopEnforceResiliencyScenarios
PopFxPlatformStateAvailable
PopIdleAoAcDozeS4TimerCallback
PopIncrementPowerSettingPendingUpdates
PopPowerInformationInternal
PopQueueQuerySetIrp
PopSetPowerActionState
PpmUpdatePlatformIdleVeto