!usb3kd.ucx_endpoint
O comando !usb3kd.ucx_endpoint exibe informações sobre um ponto de extremidade em um dispositivo USB na árvore USB 3.0. A exibição se baseia em estruturas de dados mantidas pelo driver de extensão do controlador host USB (UcxVersion.sys).
!usb3kd.ucx_endpoint UcxEndpointPrivContext
Parâmetros
UcxEndpointPrivContext
Endereço da estrutura _UCXENDPOINT_PRIVCONTEXT que representa o ponto de extremidade.
DLL
Usb3kd.dll
Comentários
O driver de extensão do controlador host USB (UcxVersion.sys) oferece uma camada de abstração entre o driver do hub USB 3.0 e o driver do controlador host USB 3.0. O driver de extensão tem sua própria representação de controladores host, dispositivos e pontos de extremidade. A saída do comando !ucx_endpoint é baseada nas estruturas de dados mantidas pelo driver de extensão. Para ver mais informações sobre o driver de extensão do controlador host USB e o driver do controlador host USB 3.0, consulte Arquitetura de pilha do driver USB.
Exemplos
Para obter o endereço do contexto privado do ponto de extremidade UCX, examine a saída do comando !ucx_controller_list. No exemplo a seguir, o endereço do contexto privado para o primeiro ponto de extremidade no segundo dispositivo é 0xfffffa8003694860.
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_endpoint 0xfffffa80053405d0 [Blk Out], UcxEndpointStateEnabled
.!ucx_endpoint 0xfffffa8005a3f710 [Control], UcxEndpointStateEnabled
.!ucx_endpoint 0xfffffa8005bbe4e0 [Blk Out], UcxEndpointStateStale
.!ucx_endpoint 0xfffffa8005ac4810 [Blk In ], UcxEndpointStateStale
!ucx_device 0xfffffa8005bd9680
.!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
Agora você pode passar o endereço do contexto privado do ponto de extremidade UCX para o comando !ucx_endpoint.
3: kd> !ucx_endpoint 0xfffffa8003694860
## Dumping Ucx USB Endpoint Information fffffa8003694860
-----------------------------------------------------
dt ucx01000!_UCXENDPOINT_PRIVCONTEXT 0xfffffa8003694860
[Blk Out], UcxEndpointStateEnabled, MaxTransferSize: 4194304
Endpoint Address: 0x02
Endpoint Queue: !wdfqueue 0x57ffc969888
UcxEndpoint State History: <Event> NewState
[ 3] <UcxEndpointEventOperationSuccess> UcxEndpointStateEnabled
[ 2] <UcxEndpointEventYes> UcxEndpointStateCompletingPendingOperation1
[ 1] <UcxEndpointEventEnableComplete> UcxEndpointStateIsAbleToStart2
[ 0] <SmEngineEventStart> UcxEndpointStateCreated
UcxEndpoint Event History:
[ 1] UcxEndpointEventEnableComplete
[ 0] SmEngineEventStart
EventCallbacks:
EvtEndpointPurge: (0xfffff880044ba6e8) USBXHCI!Endpoint_UcxEvtEndpointPurge
EvtEndpointAbort: (0xfffff880044ba94c) USBXHCI!Endpoint_UcxEvtEndpointAbort
EvtEndpointReset: (0xfffff880044bb854) USBXHCI!Endpoint_UcxEvtEndpointReset