!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
----------