This section describes the USB 2.0 debugger extension commands. These commands display information from data structures maintained by drivers in the USB 2.0 driver stack. For more information about these three drivers, see USB Driver Stack Architecture.
The USB 2.0 debugger extension commands are implemented in Usbkd.dll. To load the Usbkd commands, enter .load usbkd.dll in the debugger.
USB 2.0 Tree
The USB 2.0 tree contains the device nodes that represent execution units on EHCI host controller devices along with the child nodes that represent hubs and connected devices. This diagram shows an example of a USB 2.0 tree.
The diagram shows one physical host controller device that has two execution units. Each execution unit appears as a device node in the Plug and Play device tree. One execution unit appears as a UHCI USB host controller node, and the other execution unit shows as an EHCI USB host controller node. Each of those nodes has a child node that represents a USB root hub. Each root hub has a single child node that represents a connected USB device.
Notice that the diagram is not a tree in the sense that not all nodes descend from a single parent node. However, when we use the term USB 2.0 tree, we are referring to the set of device nodes that represent execution units on EHCI host controller devices along with the nodes for hubs and connected devices.
Getting started with USB 2.0 debugging
To start debugging a USB 2.0 issue, enter the !usb2tree command. The !usb2tree command displays a list of commands and addresses that you can use to investigate host controllers, hubs, ports, devices, endpoints, and other elements of the USB 2.0 tree.
In this section