EtwpUpdateStackTracing

NTSTATUS __stdcall EtwpUpdateStackTracing(_WMI_LOGGER_CONTEXT *LoggerContext, UINT64 *StackTraceFilter, UINT64 Count){
  unsigned int v3; 
  __int64 v6; 
  NTSTATUS v7; 
  int v8; 

  v3 = Count;
  v6 = 0i64;
  v7 = 0;
  if( (_DWORD)Count )
  {
    if( (unsigned int)Count > 0x100 )
      return -1073741811;
    if( (LoggerContext->Flags & 0x80u) != 0 )
    {
      RtlClearAllBits(&LoggerContext->HookIdMap);
    }
    else
    {
      EtwpInitializeStackTracing((_ETW_STACK_TRACE_BLOCK *)LoggerContext, (UINT64)StackTraceFilter);
      v7 = v8;
      if( v8 < 0 )
        return v7;
    }
    while( (unsigned int)v6 < v3 )
    {
      _bittestandset((signed __int32 *)LoggerContext->HookIdMap.Buffer, *((_WORD *)StackTraceFilter + 2 * v6) & 0x1FFF);
      v6 = (unsigned int)(v6 + 1);
    }
  }
  else if( (LoggerContext->Flags & 0x80u) != 0 )
  {
    RtlClearAllBits(&LoggerContext->HookIdMap);
  }
  return v7;
}

Referenced by:

EtwSetPerformanceTraceInformation
EtwpCheckForStackTracingExtension