PopSessionInputChange

VOID __stdcall PopSessionInputChange(
        UINT64 SessionId,
        POWER_SESSION_RIT_STATE *SessionInput,
        POWER_SESSION_TIMEOUTS *SessionTimeouts){
  BOOLEAN Active; 
  ULONG LastInputTime; 
  unsigned int v5; 
  bool v7; 
  _EVENT_DESCRIPTOR *v8; 
  POWER_SESSION_TIMEOUTS *v9; 
  Active = SessionInput->Active;
  LastInputTime = SessionInput->LastInputTime;
  v5 = SessionId;
  PopPrintEx(3ui64, (INT8 *)"PopAdaptive:>>>>> %s session %u input is %s\n");
  v7 = (_DWORD)PopConsoleContext == v5 && v5 != -1;
  v8 = (_EVENT_DESCRIPTOR *)POP_ETW_ADPM_ACTIVE_INPUT;
  if( !Active )
    v8 = (_EVENT_DESCRIPTOR *)&POP_ETW_ADPM_PASSIVE_INPUT;
  PopDiagTraceSessionStates(v8, v5, v7);
  PopAcquireAdaptiveLock(1u);
  if( Active )
  {
    if( v7 )
      PopConsoleSessionActiveInput(v5, LastInputTime, SessionTimeouts);
    else
      PopRemoteSessionActiveInput(v5, v9, (POWER_SESSION_TIMEOUTS)SessionTimeouts);
  }
  else if( v7 )
  {
    PopConsoleSessionPassiveInput(v5, LastInputTime, SessionTimeouts);
  }
  else
  {
    PopSetSessionUserStatus(v5, PowerUserInactive);
    SessionTimeouts->DisplayTimeout = PopGetDisplayTimeout(v5);
    SessionTimeouts->InputTimeout = PopInputTimeout;
  }
  PopReleaseAdaptiveLock();
}

Referenced by:

NtPowerInformation