PopSessionInputChange

VOID __stdcall PopSessionInputChange(
        _DEVICE_OBJECT *SessionId,
        POWER_SESSION_RIT_STATE *SessionInput,
        POWER_SESSION_TIMEOUTS *SessionTimeouts,
        UINT64 *a4){
  BOOLEAN Active; 
  ULONG LastInputTime; 
  unsigned int v6; 
  bool v8; 
  const _EVENT_DESCRIPTOR *v9; 
  POWER_SESSION_TIMEOUTS *v10; 

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

Referenced by:

NtPowerInformation