PspInitializeServerSiloDeferred
INT64 __stdcall PspInitializeServerSiloDeferred(PVOID Parameter){
__int64 *ServerSiloGlobals;
INT64 v3;
INT64 result;
int inited;
int v6;
ServerSiloGlobals = PsGetServerSiloGlobals((__int64)Parameter);
result = sub_1405B03A8(v3);
if( (int)result >= 0 )
{
result = PspSiloInitializeUserSharedData((PEJOB)Parameter);
if( (int)result >= 0 )
{
result = PspSiloInitializeSystemRootSymlink((PEJOB)Parameter);
if( (int)result >= 0 )
{
result = PspInitializeProtectedProcessParameters((INT64)ServerSiloGlobals);
if( (int)result >= 0 )
{
result = PspSiloLoadApiSets((PEJOB)Parameter);
if( (int)result >= 0 )
{
result = PspSiloInitializeIsMultiSessionSku((_EJOB *)Parameter);
if( (int)result >= 0 )
{
inited = ObInitServerSilo((PEJOB)Parameter);
if( inited < 0 )
goto LABEL_16;
result = ExpTimeZoneInitSiloState((INT64)Parameter);
if( (int)result < 0 )
return result;
inited = SeInitServerSilo((PEJOB)Parameter);
if( inited < 0
|| (inited = CmInitServerSiloState((INT64)Parameter), inited < 0)
|| (inited = EtwInitializeSiloState((_EJOB *)Parameter), inited < 0)
|| (inited = DbgkInitializeServerSilo((PEJOB)Parameter), inited < 0) )
{
LABEL_16:
*((_DWORD *)ServerSiloGlobals + 278) = 4;
PspDeleteExternalServerSiloState((PEJOB)Parameter);
}
else
{
v6 = PspNotifyServerSiloCreation((PEJOB)Parameter);
inited = v6;
if( v6 >= 0 )
return 0i64;
PsTerminateServerSilo((_EJOB *)Parameter, (unsigned int)v6);
}
return(unsigned int)inited;
}
}
}
}
}
}
return result;
}Referenced by:
PspQueueDeferredWorkAndWait