SeInitServerSilo
INT64 __stdcall SeInitServerSilo(PEJOB ServerSilo){
__int64 *ServerSiloGlobals;
_EJOB *v3;
_EJOB *v4;
signed int LogonSessionTrack;
if( PsIsHostSilo(ServerSilo) )
KeBugCheckEx(0x33u, 0i64, 0i64, 0i64, 0i64);
ServerSiloGlobals = PsGetServerSiloGlobals((__int64)ServerSilo);
v4 = PsAttachSiloToCurrentThread(v3);
LogonSessionTrack = SepCreateLogonSessionTrack((PLUID)&SeSystemAuthenticationId);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepReferenceLogonSessionSilo(
(_LUID *)&SeSystemAuthenticationId,
ServerSilo,
(_SEP_LOGON_SESSION_REFERENCES **)ServerSiloGlobals + 92);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepCreateLogonSessionTrack((PLUID)&SeAnonymousAuthenticationId);
if( LogonSessionTrack < 0 )
goto LABEL_9;
LogonSessionTrack = SepReferenceLogonSessionSilo(
(_LUID *)&SeAnonymousAuthenticationId,
ServerSilo,
(_SEP_LOGON_SESSION_REFERENCES **)ServerSiloGlobals + 93);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepInitializationPhase1() == 0 ? 0xC0000001 : 0;
goto LABEL_9;
}
}
SepDeleteLogonSessionTrack((LUID *)&SeSystemAuthenticationId, 0);
}
LABEL_9:
PsDetachSiloFromCurrentThread(v4);
return(unsigned int)LogonSessionTrack;
}Referenced by:
PspInitializeServerSiloDeferred