PsGetSiloBySessionId

NTSTATUS __stdcall PsGetSiloBySessionId(UINT64 SessionId, PFLUSH_ADAPTER_BUFFERS_EX *ServerSilo){
  _ADAPTER_OBJECT *SessionById; 
  int(__fastcall *Entries)(_DMA_ADAPTER *, _MDL *, void *, unsigned __int64, unsigned int, unsigned __int8); 
  NTSTATUS result; 

  SessionById = (_ADAPTER_OBJECT *)MmGetSessionById(SessionId);
  if( !SessionById )
    return -1073740715;
  Entries = (int(__fastcall *)(_DMA_ADAPTER *, _MDL *, void *, unsigned __int64, unsigned int, unsigned __int8))SessionById[2].AdapterObject.CrashDump.ContiguousHint.Buffer[43].Entries;
  HalPutDmaAdapter(SessionById);
  result = 0;
  *ServerSilo = Entries;
  return result;
}

Referenced by:

EtwWmitraceWorker
PsIsServiceSession
SeQueryServerSiloToken
SeQuerySessionIdTokenEx
SessionIsInteractive