EtwpCheckLoggerAccessAndDoRundown

INT64 __fastcall EtwpCheckLoggerAccessAndDoRundown(
        _ETW_SILODRIVERSTATE *SiloState,
        UINT64 SourceLoggerId,
        UINT64 TargetLoggerId,
        UINT8 Start){
  unsigned int v4; 
  _WMI_LOGGER_CONTEXT *v7; 
  _WMI_LOGGER_CONTEXT *v8; 
  int v9; 
  int v10; 
  UINT64 v12; 
  v4 = TargetLoggerId;
  v7 = EtwpAcquireLoggerContextByLoggerId(SiloState, SourceLoggerId, 1u);
  v8 = v7;
  if( v7 )
  {
    v9 = EtwpCheckLoggerControlAccess(0x80ui64, v7);
    if( v9 >= 0 )
    {
      if( (*((_DWORD *)v8 + 3) & 0x2000000) != 0 )
      {
        LODWORD(v12) = 0;
        EtwpLogKernelTraceRundown(
          (UINT64)SiloState,
          (PVOID)v4,
          (__int128 *)&SiloState->SystemLoggerSettings.EtwpGroupMasks[*((unsigned __int8 *)v8 + 834)],
          Start,
          0i64,
          v12);
      }
      v10 = *((_DWORD *)v8 + 208);
      if( (v10 & 0x800) != 0 )
      {
        EtwpLogPmcCounterRundown(v8, v4);
        v10 = *((_DWORD *)v8 + 208);
      }
      if( (v10 & 0x1000000) != 0 )
        EtwpStackRundown(*((INT64 ***)v8 + 124), (UINT64)SiloState, v4);
    }
    EtwpReleaseLoggerContext((unsigned int *)v8, 1);
  }
  else
  {
    return(unsigned int)-1073741162;
  }
  return(unsigned int)v9;
}

Referenced by:

EtwpCheckGuidAccessAndDoRundown
EtwpEnableDisableSpecialGuids