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