!usb3kd.xhci_transferring

!usb3kd.xhci_transferringエクステンションは、サイクルビット変化を検出するまで、転送リング(USB 3.0ホストコントローラによって使用される)を表示します。

!usb3kd.xhci_transferring VirtualAddress
!usb3kd.xhci_transferring PhysicalAddress 1

パラメーター

VirtualAddress
転送リングの仮想アドレス。

PhysicalAddress
転送リングの物理アドレス。

1
アドレスが物理アドレスであることを指定します。

DLL

Usb3kd.dll

解説

!xhci_transferringコマンドの出力は、USB 3.0ホストコントローラードライバーが保持するデータ構造に基づいています(UsbXhci.sys)。 USB 3.0ホストコントローラーのドライバーとUSBスタック内の他のドライバーの詳細については、Windows内のUSBホスト側ドライバーを参照してください。

転送リングは、USB 3.0ホストコントローラドライバが転送要求ブロック(TRB)のリストを保持するために使用する構造体です。 このコマンドは、転送リングの仮想アドレスまたは物理アドレスを取るが、TRBの物理アドレスを表示します。 これは、コマンドが LINK TRB を正しくトラバースできるようにするためです。

転送リングのアドレスを得るには、!xhci_deviceslotsコマンドの出力を見ます。 次の例では、転送リングの拡張機能のアドレスは0xfffffa8005b2fe00です。

3: kd> !usb3kd.xhci_deviceslots 0xfffffa800523a2d0

## Dumping dt _DEVICESLOT_DATA 0xfffffa80051a3300
----------------------------------------------
DeviceContextBase: VA 0xfffffa8005a41000 LA 0x116841000 !wdfcommonbuffer 0x57ffa6ff9b8 Size 4096

## [1] SlotID : dt USBXHCI!_USBDEVICE_DATA 0xfffffa800598c7d0 dt _SLOT_CONTEXT32 0xfffffa8005a42000
------------------------------------------------------------------------------------------------
    USB\VID_125F&PID_312A ADATA Technology Co., Ltd.
    SlotEnabled IsDevice NumberOfTTs 0 TTThinkTime 0
    Speed: Super PortPathDepth: 1 PortPath: [ 2 ] DeviceAddress: 1
    !device_info_from_pdo 0xfffffa800597d720
    DeviceContextBuffer: VA 0xfffffa8005a42000 LA 0x116842000 !wdfcommonbuffer 0x57ffa7009b8 Size 4096
    InputDeviceContextBuffer: VA 0xfffffa8005b2d000 LA 0x11692d000 !wdfcommonbuffer 0x57ffa674958 Size 4096
    ...

    [3] DeviceContextIndex : dt USBXHCI!_ENDPOINT_DATA 0xfffffa8005b394e0 dt _ENDPOINT_CONTEXT32 0xfffffa8005a42060 ES_RUNNING
    --------------------------------------------------------------------------------------------------------------
       ...
            CurrentRingBufferData: VA 0xfffffa8005b2fe00 LA 0x11692fe00 !wdfcommonbuffer 0x57ffa67c988 Size 512
            Current:  !xhci_transferring 0xfffffa8005b2fe00
            PendingTransferList: 
                [0] dt _TRANSFER_DATA 0xfffffa8005b961b0 !urb 0xfffffa8005b52be8 !wdfrequest 0x57ffa469fd8 TransferState_Pending

これで、転送リングのアドレスを !xhci_transferring コマンドに渡すことができます。

kd> !xhci_transferring 0xfffffa8005b2fe00

        [  0] NORMAL       0x000000011692fe00 CycleBit 1 IOC 0 BEI 0 InterrupterTarget 0 TransferLength    13 TDSize  0
        [  1] EVENT_DATA   0x000000011692fe10 CycleBit 1 IOC 1 BEI 0 InterrupterTarget 0 Data  0 0xfffffa8005986850 TotalBytes 13
        [  2] NORMAL       0x000000011692fe20 CycleBit 1 IOC 0 BEI 0 InterrupterTarget 0 TransferLength    13 TDSize  0
        [  3] EVENT_DATA   0x000000011692fe30 CycleBit 1 IOC 1 BEI 0 InterrupterTarget 0 Data  0 0xfffffa8005b96210 TotalBytes 13
        [  4] NORMAL       0x000000011692fe40 CycleBit 1 IOC 0 BEI 0 InterrupterTarget 0 TransferLength    13 TDSize  0
        [  5] EVENT_DATA   0x000000011692fe50 CycleBit 1 IOC 1 BEI 0 InterrupterTarget 0 Data  0 0xfffffa8005b96210 TotalBytes 13

関連項目

USB 3.0 拡張機能

!xhci_dumpall

ユニバーサル シリアル バス (USB) ドライバー