I have blogged before about the Microsoft class driver for USB Audio 2.0 hardware.
If you are a hardware vendor, and you make USB Audio 2.0 hardware, you should expect your hardware to work with this driver.
If it doesn't, you may be interested in understanding why - maybe it's a bug on our end, or on your end, or perhaps a difference of interpretation in the spec.
To help shed light on these issues, we have logging in the driver that uses Event Tracing for Windows (ETW)'s Windows Software Trace Preprocessor (WPP).
For example, you could gather the logging from usbaudio2.sys into an .etl file using a Windows Performance Recorder Profile that includes this provider:
<EventProvider Id="WPP/usbaudio2.sys" Name="641f2b2d-ea1d-4b67-9b3c-e7da318898ae" Level="5" NonPagedMemory="true">
Here's the complete usbaudio2-wprp.zip - you can take logs with it as follows. From an elevated command prompt or PowerShell window:
- wpr.exe -start usbaudio2.wprp
- Do your repro - for example, plug in the USB Audio 2.0 device
- wpr.exe -stop some-output-log-file.etl
You can stop a running trace session with wpr.exe -cancel and check whether there is a running trace session with wpr.exe -status
To actually read the logs, though, you need to decode them. You can decode WPP logs using a "program database" (PDB) file with full information (a so-called "private" PDB file), or using a collection of trace-format (TMF) files.
We at Microsoft have access to the private usbaudio2.pdb files, so we can decode them. And we have published a "public" usbaudio2.pdb, but it does not contain sufficient information to decode the WPP logs.
So to enable audio hardware vendors to read usbaudio2.sys logs, we are publishing the TMF Files for usbaudio2.sys. The .zip file includes TMF files for the Creators Update (AKA 1703 AKA 10.0.15063.*) and the Fall Creators Update (AKA 1709 AKA 10.0.16299.*)
With the TMF files in hand, you can decode the logs using a tool like tracefmt.exe which comes with the SDK and WDK. The command line to decode will be something like tracefmt.exe input-file.etl -p X:\path\to\folder\containing\tmf\files -o output-file.txt
EDIT 2018-02-26: added .wprp as an attachment, listed command lines to trace and decode, added link to tracefmt.exe documentation