!usbkd.usbhubpd
!usbkd.usbhubpd 命令显示有关 USB 端口的信息。
!usbkd.usbhubpd StructAddr
参数
StructAddr
usbhub!_HUB_PORT_DATA 结构的地址。 要获取这些结构的地址,请使用 !usbhubext。
DLL
Usbkd.dll
示例
下面是查找 usbhub!_HUB_PORT_DATA 地址的一种方法。 首先输入 !usbkd.usb2tree。
0: kd> !usbkd.usb2tree
...
2)!ehci_info ffffe00001ca11a0 !devobj ffffe00001ca1050 PCI: VendorId 8086 DeviceId 293c RevisionId 0002
RootHub !hub2_info ffffe000023201a0 !devstack ffffe00002320050
...
在前面的输出中,可以看到建议的命令 !devstack ffffe00002320050。 输入此命令:
0: kd> !kdexts.devstack ffffe00002320050
!DevObj !DrvObj !DevExt ObjectName
> ffffe00002320050 \Driver\usbhub ffffe000023201a0 0000002d
ffffe0000213c050 \Driver\usbehci ffffe0000213c1a0 USBPDO-3
...
在前面的输出中,可以看到集线器 FDO 的设备扩展名地址是 ffffe000023201a0
。
将设备扩展的地址传递给 !usbhubext 命令。
0: kd> !usbkd.usbhubext ffffe000023201a0
FDO ffffe00002320050 PDO ffffe0000213c050 HubNumber# 3
dt USBHUB!_DEVICE_EXTENSION_HUB ffffe000023201a0
!usbhublog ffffe000023201a0
RemoveLock ffffe00002320668
FdoFlags ffffe00002320ba0
CurrentPowerIrp: System (0000000000000000) Device (0000000000000000)
...
## PORT DATA
PortData 1: !port2_info ffffe000021bf000 Port State = PS_WAIT_CONNECT PortChangeLock: 0, Pcq_State: Pcq_Run_Idle
PDO 0000000000000000
....
在前面的输出中,ffffe000021bf000
是 _HUB_PORT_DATA 结构的地址。 将此地址传递给 !usbhubpd。
0: kd> !usbkd.usbhubpd ffffe000021bf000
PortNumber: 1
Parent Hub FDO ffffe00002320050
Device PDO <NULL>
dt USBHUB!_HUB_PORT_DATA ffffe000021bf000
dt USBHUB!_PORTDATA_FLAGS ffffe000021bf968
PortChangelist: !usblist ffffe000021bf1c8, CL [Empty]
## Port Indicators Log (latest at bottom)
## Event State Next
[EMPTY]
## Port Change Queue History (latest at bottom)
## Event State Next PcqEv_Suspend PcqEv_Resume PcqEv_ChDone Tag
01. PCE_Resume Pcq_Stop Pcq_Pause PcqEv_Reset PcqEv_Reset REQUEST_RESUME
... Pcq_Run_wBusy Pcq_Run_Idle
## Port Status History (latest at bottom)
## Current State Change Eve nt PDO CEOSP H/W Port REG Frame Inserted
01. PS_WAIT_CONNECT REQUEST_PAUSE 0000000000000000 00000 100 Age:000 512498
...