Freigeben über


!usb3kd.xhci_findowner

Der Befehl !usb3kd.xhci_findowner findet den Besitzer eines gemeinsamen Puffers.

!usb3kd.xhci_findowner Address

Parameter

Adresse
Virtuelle oder physische Adresse eines gemeinsamen Puffers.

DLL

Usb3kd.dll

Hinweise

Ein gemeinsamer Puffer ist ein Block physisch zusammenhängenden Speichers, der von der Hardware adressierbar ist. Der USB 3.0-Treiberstapel verwendet gemeinsame Puffer für die Kommunikation mit USB 3.0-Hostcontrollern. Angenommen, das System stürzt ab, und Sie stoßen auf eine Adresse, von der Sie vermuten, dass es sich um einen gemeinsamen Pufferspeicher handelt. Wenn es sich bei der Adresse um einen gemeinsamen Pufferspeicher handelt, erfahren Sie mit diesem Befehl, zu welchem USB 3.0-Hostcontroller der Speicher gehört (falls Sie mehr als einen USB 3.0-Controller haben) und wofür der Speicher verwendet wird.

Beispiele

Das folgende Beispiel ruft !xhci_resourceusage auf, um die Adressen einiger gängiger Puffer aufzulisten.

0: kd> !usb3kd.xhci_resourceusage 0x867fbff0

## Dumping CommonBuffer Resources
------------------------------
    dt USBXHCI!_COMMON_BUFFER_DATA 0x868d61c0
    DmaEnabler:!wdfdmaenabler 0x79729fe8

    CommonBuffers Large: Total 8 Available 2 Used 6 TotalBytes 32768
        [ 1] dt _TRACKING_DATA 0x868d73a4 VA 0x868e0000 LA 0xdb2e0000 -- Owner 0x86801690 Tag: Int2 Size 4096
        [ 2] dt _TRACKING_DATA 0x868d6d1c VA 0x868e1000 LA 0xdb2e1000 -- Owner 0x86801690 Tag: Int2 Size 4096
        [ 3] dt _TRACKING_DATA 0x868d6c54 VA 0x868e2000 LA 0xdb2e2000 -- Owner 0x86801690 Tag: Int2 Size 4096
        [ 4] dt _TRACKING_DATA 0x868d6b8c VA 0x868e3000 LA 0xdb2e3000 -- Owner 0x86801690 Tag: Int2 Size 4096
        [ 5] dt _TRACKING_DATA 0x868d67b4 VA 0x868e5000 LA 0xdb2e5000 -- Owner 0x86801548 Tag: Slt1 Size 4096
        [ 6] dt _TRACKING_DATA 0x868d50b4 VA 0x868e6000 LA 0xdb2e6000 -- Owner 0x86801548 Tag: Slt3 Size 4096

    CommonBuffers Small: Total 16 Available 13 Used 3 TotalBytes 8192
        [ 1] dt _TRACKING_DATA 0x868d6974 VA 0x868e4000 LA 0xdb2e4000 -- Owner 0x86801690 Tag: Int1 Size 512
        [ 2] dt _TRACKING_DATA 0x868d69a4 VA 0x868e4200 LA 0xdb2e4200 -- Owner 0x86801548 Tag: Slt2 Size 512
        [ 3] dt _TRACKING_DATA 0x868d69d4 VA 0x868e4400 LA 0xdb2e4400 -- Owner 0x86801488 Tag: Cmd1 Size 512

Eine der in der vorangegangenen Ausgabe aufgeführten virtuellen Adressen ist 0x868e2000. Das folgende Beispiel übergibt diese Adresse an !xhci_findowner. Eine der in der vorangegangenen Ausgabe aufgeführten physischen Adressen ist 0xdb2e4400. Das folgende Beispiel übergibt 0xdb2e4440 (Offset 0x40 Bytes von 0xdb2e4400) an !xhci_findowner.

0: kd> !xhci_findowner 0x868e2000 

!xhci_info 0x867fbff0  Texas Instruments - PCI: VendorId 0x104c DeviceId 0x8241 RevisionId 0x02

    dt _TRACKING_DATA 0x868d6c54 VA 0x868e2000 LA 0xdb2e2000 -- Owner 0x86801690 Tag: Int2 Size 4096

    dt _INTERRUPTER_DATA 0x86801690 
    !xhci_eventring 0x867fbff0  <-- This memory is used for event ring.


0: kd> !xhci_findowner 0xdb2e4440  <-- Note the offset difference.

!xhci_info 0x867fbff0  Texas Instruments - PCI: VendorId 0x104c DeviceId 0x8241 RevisionId 0x02

    dt _TRACKING_DATA 0x868d69d4 VA 0x868e4400 LA 0xdb2e4400 -- Owner 0x86801488 Tag: Cmd1 Size 512

    dt _COMMAND_DATA 0x86801488 
    !xhci_commandring 0x867fbff0  <-- This memory is used for command ring.

Der Befehl !xhci_findowner ist besonders nützlich, wenn Sie eine Adresse in einem Transfer-Request-Block (TRB) haben und sie zu dem Geräte-Slot zurückverfolgen wollen, zu dem sie gehört. Im folgenden Beispiel ist eine der Adressen, die in der Ausgabe von !xhci_transferring aufgeführt sind, 0xda452230, was die physikalische Adresse eines TRBs ist. Das Beispiel übergibt diese Adresse an !xhci_findowner. Die Ausgabe zeigt, dass das TRB zum Geräteslot 8 gehört (!xhci_deviceslots 0x8551d370 8).

0: kd> !usb3kd.xhci_transferring 0x87652200

        [  0] NORMAL       0xda452200 CycleBit 1 IOC 0 BEI 0 InterrupterTarget 2 TransferLength     6 TDSize  0
        [  1] EVENT_DATA   0xda452210 CycleBit 1 IOC 1 BEI 0 InterrupterTarget 2 Data 0x8511375c TotalBytes 6
        [  2] NORMAL       0xda452220 CycleBit 1 IOC 0 BEI 0 InterrupterTarget 2 TransferLength     6 TDSize  0
        [  3] EVENT_DATA   0xda452230 CycleBit 1 IOC 1 BEI 0 InterrupterTarget 2 Data 0x857d076c TotalBytes 6

0: kd> !xhci_findowner 0xda452230 

!xhci_info 0x8551d370  Renesas - PCI: VendorId 0x1912 DeviceId 0x0015 RevisionId 0x02 Firmware 0x0020.0006

    dt _TRACKING_DATA 0x8585fd5c VA 0x87652200 LA 0xda452200 -- Owner 0x85894548 Tag: Rng1 Size 512

    !xhci_deviceslots 0x8551d370 8

    [0] dt _TRANSFERRING_DATA 0x85894548 Events: 0x0 TransferRingState_Idle
    ------------------------------------------------------------------------------
        WdfQueue: !wdfqueue 0x7a76bcb0 (0 waiting)
        CurrentRingBufferData: VA 0x87652200 LA 0xda452200 !wdfcommonbuffer 0x7a7a0370 Size 512
        Current:  !xhci_transferring 0x87652200
        PendingTransferList: 
            [0] dt _TRANSFER_DATA 0x851136f0 !urb 0x84e55468 !wdfrequest 0x7aeec9e8 TransferState_Pending
            [1] dt _TRANSFER_DATA 0x857d0700 !urb 0x85733be8 !wdfrequest 0x7a82f9d8 TransferState_Pending

Weitere Informationen

USB 3.0-Erweiterungen

!xhci_dumpall

Universal Serial Bus (USB)-Treiber