EtwpKsrCallback
VOID __stdcall EtwpKsrCallback(PVOID CallbackContext, PVOID Argument1, PVOID Argument2){
int v3;
bool v4;
unsigned int v5;
_ETW_SILODRIVERSTATE *i;
_WMI_LOGGER_CONTEXT *v7;
_WMI_LOGGER_CONTEXT *v8;
__int64 v9;
char v10;
v3 = (int)Argument1;
if( !(_DWORD)Argument1 )
{
LABEL_8:
EtwpSavePersistedLoggers();
goto LABEL_9;
}
if( (_DWORD)Argument1 != 1 )
{
if( (_DWORD)Argument1 == 2 )
{
EtwpSavePersistedLoggers();
return;
}
if( (_DWORD)Argument1 != 3 )
{
if( (_DWORD)Argument1 != 4 )
return;
goto LABEL_9;
}
goto LABEL_8;
}
LABEL_9:
v4 = !v3 || v3 == 3;
EtwpKsrPrepared = v4;
v5 = 0;
for( i = (_ETW_SILODRIVERSTATE *)EtwpHostSiloState; v5 < *(_DWORD *)(EtwpHostSiloState + 16); ++v5 )
{
v7 = EtwpAcquireLoggerContextByLoggerId(i, v5, 0);
v8 = v7;
if( v7 )
{
v9 = *((_QWORD *)v7 + 134);
v10 = 0;
if( v9 )
{
v10 = 1;
KeWaitForSingleObject((char *)v7 + 648, Executive, 0, 0, 0i64);
if( !v3 || v3 == 3 )
{
if( *(_BYTE *)(v9 + 32) )
EtwpPreserveLogger((INT64)v8);
}
else
{
EtwpCancelMemoryPreservation(v8);
}
}
EtwpReleaseLoggerContext((unsigned int *)v8, v10);
}
i = (_ETW_SILODRIVERSTATE *)EtwpHostSiloState;
}
}Referenced by:
No references.