PopDeepSleepEvaluateCallback

VOID __stdcall PopDeepSleepEvaluateCallback(PVOID Context){
  UINT64 v1; 
  unsigned __int8 v2; 
  UINT64 v3; 
  unsigned __int8 v4; 
  bool v5; 
  UINT64 v6; 
  KeAcquireSpinLockRaiseToDpc(&PopDeepSleepDisengageReasonLock, v1);
  while( 1 )
  {
    v4 = v2;
    LOBYTE(v3) = -PopDeepSleepEnforced;
    v5 = (_DWORD)PopDeepSleepDisengageReasonMask == 0;
    if( PopDeepSleepIsEngaged == ((_DWORD)PopDeepSleepDisengageReasonMask == 0) )
      break;
    if( (_DWORD)PopDeepSleepDisengageReasonMask )
      PopDiagTraceIdleResiliencyEnd(v3);
    else
      PopDiagTraceIdleResiliencyStart(v3, (unsigned int)(PopDeepSleepEnforced != 0) + 2);
    PopDeepSleepIsEngaged = v5;
    KxReleaseSpinLock(&PopDeepSleepDisengageReasonLock);
    __writecr8(v4);
    PpmAcquireLock(&PopFxSystemLatencyLock);
    PoFxSendSystemLatencyUpdate();
    PpmReleaseLock(&PopFxSystemLatencyLock);
    KeAcquireSpinLockRaiseToDpc(&PopDeepSleepDisengageReasonLock, v6);
  }
  PopDeepSleepEvaluateWorkItemQueued = 0;
  KxReleaseSpinLock(&PopDeepSleepDisengageReasonLock);
  __writecr8(v4);
}

Referenced by:

No references.