PopSessionWinlogonNotification

VOID __stdcall PopSessionWinlogonNotification(UINT64 SessionId, POWER_SESSION_WINLOGON *SessionWinlogon){
  BOOLEAN Locked; 
  unsigned int v3; 
  BOOLEAN Console; 
  const _EVENT_DESCRIPTOR *v5; 
  unsigned int v6; 
  POWER_MONITOR_REQUEST_REASON v7; 
  UINT64 v8; 
  unsigned int LockConsoleTimeoutUnsafe; 
  _POP_SESSION_VALUE Data; 

  Locked = SessionWinlogon->Locked;
  v3 = SessionId;
  Console = SessionWinlogon->Console;
  v5 = (const _EVENT_DESCRIPTOR *)POP_ETW_ADPM_SESSION_LOCKED;
  v6 = 0;
  Data = 0i64;
  if( !Locked )
    v5 = &POP_ETW_ADPM_SESSION_UNLOCKED;
  PopDiagTraceSessionStates(v5, v3, Console);
  PopPrintEx(3ui64, (INT8 *)"PopAdaptive:>>>>> %s session %u is %s\n");
  if( Console )
  {
    PopAcquireAdaptiveLock(0);
    if( Locked )
    {
      BYTE4(xmmword_140C203D0) = 1;
      LockConsoleTimeoutUnsafe = PopGetLockConsoleTimeoutUnsafe(v8);
      Data.Timeout = LockConsoleTimeoutUnsafe;
      if( LockConsoleTimeoutUnsafe && !BYTE5(xmmword_140C203D0) )
      {
        BYTE6(xmmword_140C203D0) = 1;
        HIDWORD(PopLazyContext) = LockConsoleTimeoutUnsafe;
        BYTE1(qword_140C203B0) = 1;
        PopUpdateTimeouts(v3, &Data, 0i64);
      }
    }
    else
    {
      BYTE4(xmmword_140C203D0) = 0;
      if( BYTE6(xmmword_140C203D0) )
      {
        BYTE6(xmmword_140C203D0) = 0;
        PopLazySensorActiveInput(v3, v7);
      }
    }
    PopReleaseAdaptiveLock();
    LOBYTE(v6) = Locked != 0;
    Data.Timeout = v6;
    PopSetPowerSettingValueAcDc((_LPCGUID)&GUID_CONSOLE_LOCKED, 4ui64, &Data);
  }
}

Referenced by:

NtPowerInformation