EtwShutdown
VOID __stdcall EtwShutdown(UINT8 HiberBoot){
__int64 v2;
bool IsCurrentThreadInServerSilo;
bool v4;
__int16 v5;
_WMI_LOGGER_CONTEXT *v6;
INT64 result;
__int16 v8;
__int128 v9;
int v10;
v2 = PsGetCurrentServerSiloGlobals()[108];
IsCurrentThreadInServerSilo = PsIsCurrentThreadInServerSilo();
v4 = IsCurrentThreadInServerSilo;
if( !HiberBoot )
{
if( !IsCurrentThreadInServerSilo )
EtwpTraceSystemShutdown();
*(_DWORD *)(v2 + 4068) = 1;
}
if( !v4 )
EtwpFlushCoverage();
memset((INT64)&result, 0i64);
LODWORD(result) = 176;
v5 = *(_WORD *)(v2 + 16);
v10 = 0x20000;
while( --v5 >= 0 )
{
v6 = EtwpAcquireLoggerContextByLoggerId((_ETW_SILODRIVERSTATE *)v2, (unsigned int)v5, 0);
if( v6 )
{
if( v4 )
goto LABEL_19;
if( HiberBoot )
{
if( (*((_DWORD *)v6 + 3) & 0x400000) == 0 )
goto LABEL_8;
LABEL_19:
if( v5 )
v8 = v5;
else
v8 = -1;
v9 = *(_OWORD *)((char *)v6 + 292);
EtwpReleaseLoggerContext((unsigned int *)v6, 0);
if( !HiberBoot )
++EtwpStopTraceCount;
EtwpStopTrace(v2, &result, 1);
}
else
{
if( (*((_DWORD *)v6 + 3) & 0x400) == 0 )
goto LABEL_19;
LABEL_8:
EtwpReleaseLoggerContext((unsigned int *)v6, 0);
}
}
}
if( !HiberBoot )
EtwpStopTraceCount = 0;
}Referenced by:
PopGracefulShutdown
PopIssueActionRequest
PspDeleteExternalServerSiloState