!usb3kd.ucx_device
Die Erweiterung !usb3kd.ucx_device zeigt Informationen über ein USB-Gerät im USB 3.0 Tree an. Die Anzeige basiert auf Datenstrukturen, die vom USB-Hostcontroller-Erweiterungstreiber (UcxVersion.sys) verwaltet werden.
!usb3kd.ucx_device UcxUsbDevicePrivContext
Parameter
UcxUsbDevicePrivContext
Adresse der Struktur _UCXUSBDEVICE_PRIVCONTEXT, die das Gerät darstellt.
DLL
Usb3kd.dll
Hinweise
Der USB-Hostcontroller-Erweiterungstreiber (UcxVersion.sys) bietet eine Abstraktionsebene zwischen dem USB 3.0-Hub-Treiber und dem USB 3.0-Hostcontroller-Treiber. Der Erweiterungstreiber hat seine eigene Darstellung von Hostcontrollern, Geräten und Endpunkten. Die Ausgabe des Befehls !ucx_device basiert auf den Datenstrukturen, die vom Erweiterungstreiber gepflegt werden. Weitere Informationen über den USB-Hostcontroller-Erweiterungstreiber und den USB-3.0-Hostcontroller-Treiber finden Sie unter USB Driver Stack Architecture.
!ucx_device und !device_info zeigen beide Informationen über ein Gerät an, aber die angezeigten Informationen sind unterschiedlich. Die Ausgabe von !ucx_device ist aus der Sicht des USB-Hostcontroller-Erweiterungstreibers, und die Ausgabe von !device_info ist aus der Sicht des USB-3.0-Hub-Treibers. Die Ausgabe !ucx_device enthält beispielsweise Informationen über Endpunkte, und die Ausgabe !device_info enthält Informationen über Konfigurations- und Schnittstellendeskriptoren.
Beispiele
Um die Adresse des privaten UCX-USB-Gerätekontexts zu erhalten, sehen Sie sich die Ausgabe des Befehls !ucx_controller_list an. Im folgenden Beispiel lautet die Adresse des privaten Kontexts für das zweite Gerät 0xfffffa8005bd9680.
3: 3: kd> !ucx_controller_list
## Dumping List of UCX controller objects
--------------------------------------
[1] !ucx_controller 0xfffffa80052da050 (dt ucx01000!_UCXCONTROLLER_PRIVCONTEXT fffffa80052da050)
!ucx_device 0xfffffa8005a41840
.!ucx_endpoint 0xfffffa800533f3d0 [Blk In ], UcxEndpointStateEnabled
...
!ucx_device 0xfffffa8005bd9680
.!ucx_endpoint 0xfffffa8003694860 [Blk Out], UcxEndpointStateEnabled
...
Jetzt können Sie die Adresse des privaten UCX-USB-Kontextes an den Befehl !ucx_device übergeben.
3: kd> !ucx_device 0xfffffa8005bd9680
## Dumping Ucx USB Device Information fffffa8005bd9680
---------------------------------------------------
dt ucx01000!_UCXUSBDEVICE_PRIVCONTEXT 0xfffffa8005bd9680
!ucx_controller 0xfffffa80052da050
ParentHub: !wdfhandle 0x57ffacbce78
DefaultEndpoint: !ucx_endpoint 0xfffffa8005be0550
ListOfEndpionts:
.!ucx_endpoint 0xfffffa8003694860 [Blk Out], UcxEndpointStateEnabled
.!ucx_endpoint 0xfffffa8003686820 [Blk In ], UcxEndpointStateEnabled
.!ucx_endpoint 0xfffffa8005be0550 [Control], UcxEndpointStateEnabled
.!ucx_endpoint 0xfffffa8003695580 [Blk In ], UcxEndpointStateStale
.!ucx_endpoint 0xfffffa80036a20c0 [Blk Out], UcxEndpointStateStale
EventCallbacks:
EvtUsbDeviceEndpointsConfigure: (0xfffff880044d1164) USBXHCI!UsbDevice_UcxEvtEndpointsConfigure
EvtUsbDeviceEnable: (0xfffff880044cffac) USBXHCI!UsbDevice_UcxEvtEnable
EvtUsbDeviceDisable: (0xfffff880044d1cbc) USBXHCI!UsbDevice_UcxEvtDisable
EvtUsbDeviceReset: (0xfffff880044d2178) USBXHCI!UsbDevice_UcxEvtReset
EvtUsbDeviceAddress: (0xfffff880044d0934) USBXHCI!UsbDevice_UcxEvtAddress
EvtUsbDeviceUpdate: (0xfffff880044d0c80) USBXHCI!UsbDevice_UcxEvtUpdate
EvtUsbDeviceDefaultEndpointAdd: (0xfffff880044ede1c) USBXHCI!Endpoint_UcxEvtUsbDeviceDefaultEndpointAdd
EvtUsbDeviceEndpointAdd: (0xfffff880044edfc8) USBXHCI!Endpoint_UcxEvtUsbDeviceEndpointAdd