The !usbkd.usbdpc command displays information stored in an _XDPC_CONTEXT structure.

!usbkd.usbdpc StructAddr


Address of a usbport!_XDPC_CONTEXT structure. To get the XDPC list for a USB host controller, use the !usbkd.usbhcdext command.




Here is one way to find the address of a usbport!_XDPC_CONTEXT structure. First enter !usbkd.usb2tree.

0: kd> !usbkd.usb2tree
UHCI MINIPORT(s) dt usbport!_USBPORT_MINIPORT_DRIVER ffffe00001e77010
4)!uhci_info ffffe00001c7d1a0 !devobj ffffe00001c7d050 PCI: VendorId...

In the preceding output, the address of the device extension of the FDO is displayed as the argument of the DML command !uhci_info ffffe00001c7d1a0.

Either click the DML command or pass the address of the device extension to !usbhcdext to get the XDPC list.

0: kd> !usbkd.usbhcdext ffffe00001c7d1a0
## XDPC List

01) dt USBPORT!_XDPC_CONTEXT ffffe00001c7df18
02) dt USBPORT!_XDPC_CONTEXT ffffe00001c7db88
03) dt USBPORT!_XDPC_CONTEXT ffffe00001c7dd50
04) dt USBPORT!_XDPC_CONTEXT ffffe00001c7e0e0

In the preceding output, ffffe00001c7df18 is the address of an _XDPC_CONTEXT structure. Pass this address to !usbdpc.

0: kd> !usbkd.usbdpc ffffe00001c7df18

dt USBPORT!_XDPC_CONTEXT ffffe00001c7df18

## XDPC HISTORY (latest at boottom)

##      EVENT                STATE                   NEXT

[01] Ev_Xdpc_End          XDPC_Running            XDPC_Enabled            
[02] Ev_Xdpc_Signal       XDPC_Enabled            XDPC_DpcQueued          
[03] Ev_Xdpc_Signal       XDPC_DpcQueued          XDPC_DpcQueued          
[04] Ev_Xdpc_Worker       XDPC_DpcQueued          XDPC_Running            
[05] Ev_Xdpc_Signal       XDPC_Running            XDPC_Signaled           
[06] Ev_Xdpc_End          XDPC_Signaled           XDPC_DpcQueued          
[07] Ev_Xdpc_Worker       XDPC_DpcQueued          XDPC_Running            
[08] Ev_Xdpc_End          XDPC_Running            XDPC_Enabled

See also

USB 2.0 Debugger Extensions

Universal Serial Bus (USB) Drivers