Add support for Classic ETW providers in NetPerf #1259
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds more complete ETW parity within the NetPerf file format. These changes are lessons learnt from BPerf's file format which can round trip between BTL files and ETL files and visual inspection in PerfView for many different scenarios that gave us the confidence that they are "visually indistinguishable".
If you look at the changes, they are not very invasive and allow users of NetPerf to enjoy some of the ETL benefits much as we have with our BTL format. Furthermore, this allows complete deprecation of the BTL file format. Note: Compression is an additional required feature for deprecation which is covered in a different PR.
_processNameForID
is a dictionary that tracks process names, this piece of code is needed so that pretty process names show up when the data is in the trace. This is copied straight from ETWTraceEventSource.cstraceEvent.FixupData()
needs to be called because many out-of-box TraceEvent parsers do fix ups for various reasons.WindowsClassicEventProviderGuid
tag kind which informs two properties: classic event, provider guid