SeInitServerSilo
NTSTATUS __stdcall SeInitServerSilo(_EJOB *ServerSilo){
_ESERVERSILO_GLOBALS *ServerSiloGlobals;
INT64 v3;
_EJOB *v4;
_EJOB *v5;
signed int LogonSessionTrack;
if( PsIsHostSilo(ServerSilo) )
KeBugCheckEx(0x33u, 0i64, 0i64, 0i64, 0i64);
ServerSiloGlobals = PsGetServerSiloGlobals(ServerSilo);
LODWORD(v4) = PsAttachSiloToCurrentThread(v3);
v5 = v4;
LogonSessionTrack = SepCreateLogonSessionTrack((_LUID *)&SeSystemAuthenticationId);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepReferenceLogonSessionSilo(
(_LUID *)&SeSystemAuthenticationId,
ServerSilo,
&ServerSiloGlobals->SeSiloState.SystemLogonSession);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepCreateLogonSessionTrack((_LUID *)&SeAnonymousAuthenticationId);
if( LogonSessionTrack < 0 )
goto LABEL_9;
LogonSessionTrack = SepReferenceLogonSessionSilo(
(_LUID *)&SeAnonymousAuthenticationId,
ServerSilo,
&ServerSiloGlobals->SeSiloState.AnonymousLogonSession);
if( LogonSessionTrack >= 0 )
{
LogonSessionTrack = SepInitializationPhase1() == 0 ? 0xC0000001 : 0;
goto LABEL_9;
}
}
SepDeleteLogonSessionTrack((_LUID *)&SeSystemAuthenticationId, 0);
}
LABEL_9:
PsDetachSiloFromCurrentThread(v5);
return LogonSessionTrack;
}Referenced by:
PspInitializeServerSiloDeferred