!usbkd.usbhubpd
!usbkd.usbhubpd 命令會顯示USB埠的相關信息。
!usbkd.usbhubpd StructAddr
參數
結構Addr
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
...