PsIsCurrentThreadInServerSilo

BOOL __stdcall PsIsCurrentThreadInServerSilo(){
  int v0; 
  _ETHREAD *CurrentThread; 
  INT64 Silo; 

  LOBYTE(v0) = KeIsExecutingInArbitraryThreadContext();
  if( v0 )
  {
    return 0i64;
  }
  else
  {
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    Silo = (INT64)CurrentThread->Silo;
    if( Silo == -3 )
    {
      LOBYTE(CurrentThread) = CurrentThread->Tcb.Process->ServerSilo != 0i64;
    }
    else
    {
      LODWORD(CurrentThread) = PsGetEffectiveServerSilo(Silo);
      LOBYTE(CurrentThread) = CurrentThread != 0i64;
    }
  }
  return(unsigned __int8)CurrentThread;
}

Referenced by:

CmpAcceptBoot
CmpDoParseKey
CmpOKToFollowLink
EtwQueryPerformanceTraceInformation
EtwSetPerformanceTraceInformation
EtwShutdown
EtwpGetSoftRestartInformation
EtwpSetSoftRestartInformation
ExpQuerySystemInformation
ExpRaiseHardError
ExpRefreshTimeZoneInformation
ExpSetTimeZoneInformation
ExpWriteTimeZoneBias
ExpWriteTimeZoneBiasStartEnd
IopLoadDriverImage
IopUnloadDriver
MiCreatePagingFile
MiInitializeSessionGlobals
NtImpersonateAnonymousToken
NtInitiatePowerAction
NtPlugPlayControl
NtPowerInformation
NtSetDefaultHardErrorPort
NtSetInformationSymbolicLink
NtSetSystemInformation
NtSetSystemTime
ObpParseSymbolicLinkEx
PoUserShutdownCancelled
PoUserShutdownInitiated
PsQueryCurrentApiSetSchema
PsShutdownSystem
PspConvertSiloToServerSilo
PspCreateSilo
RtlCapabilityCheck
RtlGetActiveConsoleId
RtlGetConsoleSessionForegroundProcessId
RtlGetNtProductType
RtlGetNtSystemRoot
RtlGetSuiteMask
RtlIsMultiSessionSku
RtlSetActiveConsoleId
RtlSetConsoleSessionForegroundProcessId
RtlSetSystemGlobalData
SepCreateClientSecurityEx
SepInitializationPhase1
SepRmSetAuditEventWrkr