EtwpUpdateEnableMask
VOID __stdcall EtwpUpdateEnableMask(
_ETW_GUID_ENTRY *GuidEntry,
UINT8 IsClassicProvider,
CHAR AccessMode,
UINT8 *EnableMask){
unsigned int *p_EnableProperty;
char v5;
unsigned int i;
NTSTATUS v9;
_WMI_LOGGER_CONTEXT *v10;
_WMI_LOGGER_CONTEXT *v11;
unsigned int LoggerMode;
_BYTE *v13;
if( !IsClassicProvider )
{
p_EnableProperty = &GuidEntry->EnableInfo[0].EnableProperty;
v5 = (char)EnableMask;
for( i = 0; i < 8; ++i )
{
if( *(p_EnableProperty - 2) && (!AccessMode || (*p_EnableProperty & 0x400) != 0) )
{
v9 = 0;
v10 = EtwpAcquireLoggerContextByLoggerId(GuidEntry->SiloState, *((unsigned __int16 *)p_EnableProperty - 1), 0);
v11 = v10;
if( v10 )
{
LoggerMode = v10->LoggerMode;
if( v5 )
{
if( (LoggerMode & 0x80u) != 0 )
v9 = EtwpCheckLoggerControlAccess(0x200ui64, v11);
}
else if( (LoggerMode & 0x1000000) != 0 )
{
v9 = -1073741790;
}
EtwpReleaseLoggerContext(v11, 0);
if( !v9 )
*v13 |= 1 << i;
}
}
p_EnableProperty += 8;
}
}
}Referenced by:
EtwpRegisterProvider
EtwpRegisterUMGuid
NtTraceEvent