SessionIsInteractive

UINT8 __stdcall SessionIsInteractive(UINT64 SessionId){
  UINT8 v1; 
  int v2; 
  INT64 *v3; 
  int v5; 
  _EJOB *ServerSilo; 

  v1 = 0;
  v2 = SessionId;
  ServerSilo = 0i64;
  if( (_DWORD)SessionId == -1 || PsGetSiloBySessionId(SessionId, (PFLUSH_ADAPTER_BUFFERS_EX *)&ServerSilo) < 0 )
    return 0;
  v3 = &PspHostSiloGlobals;
  if( ServerSilo )
    v3 = (INT64 *)*((_QWORD *)ServerSilo + 159);
  if( v2 != *(_DWORD *)v3[141] )
    return 1;
  v5 = ServerSilo ? *(_DWORD *)(*(_QWORD *)(*((_QWORD *)ServerSilo + 159) + 1128i64) + 4i64) : KUSER_SHARED_DATA.ActiveConsoleId;
  if( v2 == v5 )
    return 1;
  return v1;
}

Referenced by:

NtSetThreadExecutionState
PopCreateUserPowerRequest
PopSetWin32kInputTimeout