EtwpCheckLoggerAccessAndDoRundown

NTSTATUS __stdcall EtwpCheckLoggerAccessAndDoRundown(
        _ETW_SILODRIVERSTATE *SiloState,
        UINT64 SourceLoggerId,
        UINT64 TargetLoggerId,
        UINT8 Start){
  unsigned int v4; 
  _WMI_LOGGER_CONTEXT *v6; 
  _WMI_LOGGER_CONTEXT *v7; 
  int v8; 
  unsigned int Flags; 

  v4 = TargetLoggerId;
  v6 = EtwpAcquireLoggerContextByLoggerId(SiloState, SourceLoggerId, 1u);
  v7 = v6;
  if( !v6 )
    return -1073741162;
  v8 = EtwpCheckLoggerControlAccess(0x80ui64, v6);
  if( v8 >= 0 )
  {
    if( (v7->LoggerMode & 0x2000000) != 0 )
      EtwpLogKernelTraceRundown(
        (UINT64)SiloState,
        (PERFINFO_GROUPMASK *)v4,
        32 * BYTE2(v7->$B4A554AA980A5EA7570A49F99BAE17BC::_bf_0) + (_BYTE)SiloState - 92);
    Flags = v7->Flags;
    if( (Flags & 0x800) != 0 )
    {
      EtwpLogPmcCounterRundown(v7, v4);
      Flags = v7->Flags;
    }
    if( (Flags & 0x1000000) != 0 )
      EtwpStackRundown((_SLIST_HEADER *)v7->StackCache, (UINT64)SiloState);
  }
  EtwpReleaseLoggerContext(v7, 1u);
  return v8;
}

Referenced by:

EtwpCheckGuidAccessAndDoRundown
EtwpEnableDisableSpecialGuids