このセクションでは、USB 3.0 デバッガー拡張機能コマンドについて説明します。 これらのコマンドは、USB 3.0 スタック内の 3 つのドライバー (USB 3.0 ハブ ドライバー、USB ホスト コントローラー拡張機能ドライバー、USB 3.0 ホスト コントローラー ドライバー) によって維持されるデータ構造からの情報を表示します。 これら 3 つのドライバーの詳細については、 Windows の USB ホスト側ドライバーを参照してください。 USB 3.0 スタックのドライバーで使用されるデータ構造の説明については、Windows 8 ビデオの USB デバッグイノベーションの USB 3.0 データ構造とパート 2 を参照してください。
USB 3.0 デバッガー拡張機能コマンドは、Usb3kd.dllに実装されています。 To load the Usb3kd commands, enter .load usb3kd.dll in the debugger.
USB 3.0 ツリー
USB 3.0 ツリーには、すべての USB 3.0 ホスト コントローラーと、USB 3.0 ホスト コントローラーに接続されているすべてのハブとデバイスが含まれています。 次の図は、USB 3.0 ツリーの例を示しています。
図に示されているツリーには、2 つの USB 3.0 ホスト コントローラーがあります。 図に示されているすべてのデバイスが USB 3.0 デバイスであるわけではないことに注意してください。 ただし、各デバイスは USB 3.0 ホスト コントローラーに由来するブランチ上にあるため、表示されるすべてのデバイス (ハブを含む) は USB 3.0 ツリーの一部です。
この図は、ホスト コントローラーごとに 1 つずつ、2 つのツリーと考えることができます。 ただし、 USB 3.0 ツリーという用語を使用する場合は、接続されているハブとデバイスと共にすべての USB 3.0 ホスト コントローラーのセットを参照しています。
USB 3.0 デバッグの概要
To start debugging a USB 3.0 issue, enter the !usb_tree command. The !usb_tree 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 3.0 tree.
Hub commands
次の拡張機能コマンドでは、USB 3.0 ハブ、デバイス、ポートに関する情報が表示されます。 表示される情報は、USB 3.0 ハブ ドライバーによって維持されるデータ構造に基づいています。
- !usb3kd.usb_tree
- !usb3kd.hub_info
- !usb3kd.hub_info_from_fdo
- !usb3kd.device_info
- !usb3kd.device_info_from_pdo
- !usb3kd.port_info
UCX commands
次の拡張コマンドは、USB 3.0 ホスト コントローラー、デバイス、ポートに関する情報を表示します。 表示される情報は、USB ホスト コントローラー拡張機能ドライバーによって維持されるデータ構造に基づいています。
ホスト コントローラーのコマンド
次の拡張コマンドは、USB 3.0 ホスト コントローラー ドライバーによって維持されるデータ構造からの情報を表示します。
- !usb3kd.xhci_dumpall
- !usb3kd.xhci_capability
- !usb3kd.xhci_commandring
- !usb3kd.xhci_deviceslots
- !usb3kd.xhci_eventring
- !usb3kd.xhci_registers
- !usb3kd.xhci_resourceusage
- !usb3kd.xhci_trb
- !usb3kd.xhci_transferring
- !usb3kd.xhci_findowner