!usb3kd.ucx_device
L'estensione !usb3kd.ucx_device visualizza informazioni su un dispositivo USB nell'albero USB 3.0. Lo schermo si basa sulle strutture di dati gestite dal driver di estensione del controller host USB (UcxVersion.sys).
!usb3kd.ucx_device UcxUsbDevicePrivContext
Parametri
UcxUsbDevicePrivContext
Indirizzo della struttura _UCXUSBDEVICE_PRIVCONTEXT che rappresenta il dispositivo.
DLL
Usb3kd.dll
Osservazioni:
Il driver di estensione del controller host USB (UcxVersion.sys) fornisce un livello di astrazione tra il driver hub USB 3.0 e il driver del controller host USB 3.0. Il driver di estensione ha una propria rappresentazione di controller host, dispositivi ed endpoint. L'output del comando !ucx_device si basa sulle strutture di dati gestite dal driver di estensione. Per altre informazioni sul driver di estensione del controller host USB e sul driver del controller host USB 3.0, vedere Architettura dello stack di driver USB.
!ucx_device e !device_info visualizzare entrambe le informazioni su un dispositivo, ma le informazioni visualizzate sono diverse. L'output di !ucx_device è dal punto di vista del driver di estensione del controller host USB e l'output di !device_info è dal punto di vista del driver hub USB 3.0. Ad esempio, l'output !ucx_device include informazioni sugli endpoint e l'output !device_info include informazioni sui descrittori di configurazione e interfaccia.
Esempi
Per ottenere l'indirizzo del contesto privato del dispositivo USB UCX, esaminare l'output del comando !ucx_controller_list. Nell'esempio seguente l'indirizzo del contesto privato per il secondo dispositivo è 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
...
È ora possibile passare l'indirizzo del contesto privato USB UCX al comando !ucx_device .
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