Reputation: 1629
I've looked through much of the documentation on trace processing and ETW in general but still feel as though I'm lacking some specifics. Does the Trace Processing library contain support to process all events that are part of a .etl
file? For instance, ETW2JSON claims to support the following and provides a library to deserialize events:
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.
Does the Trace Processing library provide equivalent or better support for processing all types of events from a .etl
file?
For instance, let's say I'm processing via generic events.
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
}
}
With the above code, does this give me access to all events in a .etl
file?
Upvotes: 1
Views: 209
Reputation: 301
(I am a developer at Microsoft who works on the TraceProcessor project.)
I don't have experience with the ETW2JSON project, so I can't speak to comparisons.
There are four ETW provider types:
(You can use the IsTraceLogging property on IGenericEvent to distingush between manifested and TraceLogging events.)
I don't know of a type of event in the trace that wouldn't appear in one of those three data sources, but if you find something missing, please let me know.
Upvotes: 2