I currently have a need for a USB Protocol Analyzer, to evaluate a USB client built with .NETMF on a G400-D and a PIC microcontroller based design.
I researched several vendors of USB Protocol Analyzers but for this phase of my project found them to be too expensive.
Eventually I came across the LOGMAN program to capture Windows event tracing logs, this requires the LOGMAN and the Windows WDK to be installed. Then view the USB event log with NETMON. One of my jobs is to write Windows device drivers, so using the kernel debugger and the WDK environment was not a big obstacle.
Reading the MSDN USB blog further an even more convenient approach is available, that uses Microsoft Message Analyzer (MMA). Within just over an hour with this program and a Windows 8.1 system I was able to see the problem with both my selected evaluation platforms.
The .NETMF project with a G400-D and a custom vendor class was not enumerating my device, and Device Manager reported the device as Unknown. With the Message Analyzer running during device enumeration, the first get device descriptors request passed, but the second request for the device descriptor failed with the an error that the device was babbling, basically the full device descriptor is been sent, where the requested MAX buffer size is set to 8 bytes in the first request, retrying with a MAX size to 64 bytes allowed the G400-D to be enumerated. I try to create a separate post with this as an issue once I get the relevant specs together.
The PIC microcontroller project is failing on the GetDeviceDescriptors as well but the Message Analyser now reports that there is a Stall error, still investigating this further.
The following is a link to Message Analyzer, the install has changed a bit from what is described here, but the rest is complete enough to get you started analyzing the USB bus.
MSDN USB blog
http://blogs.msdn.com/b/usbcoreblog/
What a fantastic tool that makes use of the WPP event tracing, and shows the power of device drivers implemented with WPP. Some of the other features are a GUID that the applications / drivers can pass in to the event logging system, that greatly simplifies tracing a complete transaction across the system. Also the core Windows USB drivers have a event logging buffer running all the time so a post mortem dump will have trace information.
There are advantages to hardware USB protocol analyzer, but for this price point, an hour or so of your time, and the view from the host controller this is well worth a look.
Enjoy
Phil