SeQuerySessionIdTokenEx
NTSTATUS __stdcall SeQuerySessionIdTokenEx(VOID *Token, UINT64 *SessionId, UINT8 *IsServiceSession){
_ETHREAD *CurrentThread;
bool v7;
unsigned int v8;
_EJOB *ServerSilo;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
ServerSilo = 0i64;
--CurrentThread->Tcb.KernelApcDisable;
v7 = 1;
ExAcquireResourceSharedLite(*((_QWORD *)Token + 6), 1);
v8 = *((_DWORD *)Token + 30);
*(_DWORD *)SessionId = v8;
ExReleaseResourceLite(*((PERESOURCE *)Token + 6));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
if( v8 )
v7 = PsGetSiloBySessionId(v8, (PFLUSH_ADAPTER_BUFFERS_EX *)&ServerSilo) >= 0
&& v8 == PsGetServerSiloServiceSessionId((INT64)ServerSilo);
*IsServiceSession = v7;
return 0;
}Referenced by:
PiPnpRtlApplyMandatoryFilters
PiPnpRtlIsDeviceValidForSession
PiUEventApplyAdditionalFilters