!usbkd.usblist

!usbkd.usblistコマンドは、指定した型の構造体のリンクリストを表示します。

!usbkd.usblist ListAddr, ListType

パラメーター

ListAddr
構造体のリンクリストのアドレス。 USBポートドライバーによって管理されるリンクリストのアドレスを検索するには、!usbhcdextを使用します。 USBハブドライバーによって管理されるリンクリストのアドレスを検索するには、使用!usbhubextします。

ListType
次のリストの種類のいずれかになります。

リスト タイプ 構造
BC usbport!_BUS_CONTEXT
EP usbport!_HCD_ENDPOINT
TT usbport!_TRANSACTION_TRANSLATOR
DL usbport!_USBD_DEVICE_HANDLE
PL usbhub!_DEVICE_EXTENSION_PDO
EL usbhub!_HUB_EXCEPTION_RECORD
RL usbhub!_HUB_REFERENCE_LIST_ENTRY
TL usbhub!_HUB_TIMER_OBJECT
WI usbhub!_HUB_WORKITEM
IO usbhub!_IO_LIST_ENTRY
LA usbhub!_LATCH_LIST_ENTRY
CL usbhub!_PORT_CHANGE_CONTEXT
BL usbhub!_SSP_BUSY_HANDLE

加工

Usbkd.dll

リンクリストのアドレスを見つける方法のひとつを紹介しよう。 最初に!usbkd.usb2tree入力します。

0: kd> !usbkd.usb2tree
...
2)!ehci_info ffffe00001ca11a0 !devobj ffffe00001ca1050 ...
   ...

先の出力では、DMLコマンド!ehci_info ffffe00001ca11a0の引数として、FDOのデバイス拡張のアドレスが表示されている。

DMLコマンドをクリックするか、デバイスの拡張機能のアドレスを!usbhcdextに渡します。

0: kd> !usbkd.usbhcdext ffffe00001ca11a0

HC Flavor 1000  FDO ffffe00001ca1050
Root Hub: FDO ffffe00002320050 !hub2_info ffffe000023201a0
...
DeviceHandleList: !usblist ffffe00001ca23b8, DL
...

先の出力では、fffe00001ca23b8はusbport!_USBD_DEVICE_HANDLE構造体のリンクリストのアドレスである。

ここで、リンクリストのアドレスを!usblistに渡します。

0: kd> !usblist ffffe00001ca23b8, DL
list: ffffe00001ca23b8 DL
----------
!usbdevh ffffe000020f9590
SSP [IdleReady] (0)
PCI\VEN_Xxxx  Xxxx Corporation
Root Hub
DriverName :  
----------
!usbdevh ffffe00001bce250
SSP [IdleReady] (0)
USB\Xxxx  Xxxx Corporation
Speed: HIGH, Address:  1, PortPathDepth: 1, PortPath: [3 0 0 0 0 0]
DriverName :\Driver\USBSTOR      !devstack ffffe000053ef2a0
----------

関連項目

USB 2.0 デバッガー拡張機能

ユニバーサル シリアル バス (USB) ドライバー