.net 跟踪处理是否具有与 ETW2JSON 等效或更好的事件解析支持?

Does .net trace processing have equivalent or better event parsing support as ETW2JSON?

我已经浏览了很多关于跟踪处理和 ETW 的一般文档,但仍然觉得我缺少一些细节。跟踪处理库是否支持处理属于 .etl 文件的所有事件?例如,ETW2JSON 声称支持以下内容并提供反序列化事件的库:

Windows MOF Classes events, Windows Vista Manifest events and EventSource .NET events. It also understands events that XPERF (WPR) adds as part of its merging process (to give PDB information) for profiler tools like the Windows Performance Recorder.

跟踪处理库是否为处理来自 .etl 文件的所有类型的事件提供等效或更好的支持?

例如,假设我正在通过通用事件进行处理。

using (ITraceProcessor trace = TraceProcessor.Create(etlPath))
{
    IPendingResult<IGenericEventDataSource> genericEvents = trace.UseGenericEvents();

    trace.Process();

    IGenericEventDataSource genericEventDataSource = genericEvents.Result;

    foreach (IGenericEvent gevent in genericEventDataSource.Events)
    {
        // process event
    }
} 

使用上面的代码,这是否允许我访问 .etl 文件中的 所有 事件?

(我是 Microsoft 的一名开发人员,从事 TraceProcessor 项目。)

我没有ETW2JSON项目的经验,所以无法比较。

有四个ETW provider types:

(您可以使用 IsTraceLogging property on IGenericEvent 来区分显式事件和 TraceLogging 事件。)

我不知道跟踪中的某类事件不会出现在这三个数据源之一中,但如果您发现遗漏了什么,请告诉我。