TraceLogging USB4™ rundown events

The USB4 host router and device router drivers emit TraceLogging events to report the state of the domain. These events are known as rundown events and are reported by the drivers when a ETW trace session for the following trace providers is enabled. These events describe the domain through a series of events. After the rundown events are emitted, the USB4 drivers will continue to report events on router enumeration and removal.

ETW provider name: "Microsoft.Windows.USB.USB4.HostRouter" ETW provider GUID: {575BA31F-2B45-58C2-64FD-F5DC757B6137}

ETW provider name: "Microsoft.Windows.USB.USB4.DeviceRouter" ETW provider GUID: {AE795D36-2B11-5EFB-C7E0-5D552BC55D6C}

The following tables describe some TraceLogging events of interest.

  1. Event RundownStart and RundownComplete are marker events to denote start and end of rundown events. They do not carry any event properties or payload with them.

  2. Event DeviceRouterInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    DeviceInstancePath WideString The PnP-assigned device instance path of the device router.

    It can be used to match the DEVPKEY_Device_InstanceId property data that PnP APIs in the Unified Device Property Model return.
    VendorId HexUInt16 Vendor ID
    ProductId HexUInt16 Product ID
    AsciiVendorName String The vendor name in ASCII. It is defined in the ASCII Vendor Name Entry chapter of the USB4 DROM specification.
    AsciiModelName String The model name in ASCII. It is defined in the ASCII Model Name Entry chapter of the USB4 DROM specification.
    DeviceID HexUInt16 For Thunderbolt™ 3, it's the "VendorId" field in the Thunderbolt™ 3 header section.
    For USB4, it's the "idVendor" field in the Product Descriptor Entry.
    ModelID HexUInt16 For Thunderbolt™ 3, it's the "Model ID" field in the Thunderbolt™ 3 header section.
    For USB4, it's the "idProduct" field in the Product Descriptor Entry.
    UUID HexUInt64 The device UUID. For USB4, it is the UUID in the ROUTER_CS_7 and ROUTER_CS_8 registers defined by the USB4 specification.
    DeviceFirmwareVersion HexUInt32 The device firmware version.
  3. Event PortInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    IsNewDeviceRouter Boolean True if it is reporting a port of a new device router. False if it is reporting a port status change. For rundown events, it is also false.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    IsDFP Boolean True if the associated Port is DFP. False if it's UFP.
    Lane0AdapterNumber UInt8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    Lane1AdapterNumber UInt8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    DownstreamRouterDomainID HexUInt32 The domain ID of the downstream device router.
    DownstreamRouterTopologyID UInt8FixedArray(7) The 7-byte topology ID of the downstream device router. All zeros if no device router is connected downstream.
    SupportedLinkSpeeds HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_0[19..16] "Supported Link Speeds".
    SupportedLinkWidths HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_0[25..20] "Supported Link Widths".
    CurrentLinkSpeed HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_1[19..16] "Current Link Speed".
    NegotiatedLinkWidth HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_1[25..20] "Negotiated Link Width".
    TargetLinkSpeed HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_1[3..0] "Target Link Speed".
    TargetLinkWidth HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_1[9..4] "Target Link Width".
    AdapterState HexUInt8 The value from lane adapter configuration capability register LANE_ADP_CS_1[29..26] "Adapter State".
    LaneBonded Boolean Indicates whether the lanes of this port are bonded.
    CableUsbVersion Boolean The value from port capability register PORT_CS_18[7..0] "Cable USB Version".
    LinkCLxSupport Boolean The value from port capability register PORT_CS_18[10] "Link CLx Support (LCL)".
    Tbt3CompatibleMode Boolean The value from port capability register PORT_CS_18[9] "TBT3-Compatible Mode (TCM)".
  4. Event PCIeAdapterInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    IsNewDeviceRouter Boolean True if it is reporting a port of a new device router. False if it is reporting a port status change. For rundown events, it is also false.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    AdapterNumber Uint8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    AdapterType HexUInt32 Adapter configuration space register ADP_CS_2[23..0]. It combines the values of "Adapter Type Protocol", "Adapter Type Version" and "Adapter Type Sub-Type".

    Spec reference: "Table 8-9. Adapter Configuration Space Basic Attributes" and "Table 8-10. Adapter Types"
    IsDownstream Boolean True if it's a downstream PCIe adapter. False if it's upstream.
    IsTunneled Boolean True if the protocol traffic is tunneled.
  5. Event DPAdapterInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    IsNewDeviceRouter Boolean True if it is reporting a port of a new device router. False if it is reporting a port status change. For rundown events, it is also false.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID Uint8FixedArray(7) The 7-byte topology ID of this device router.
    AdapterNumber Uint8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    AdapterType HexUInt32 Adapter configuration space register ADP_CS_2[23..0]. It combines the values of "Adapter Type Protocol", "Adapter Type Version" and "Adapter Type Sub-Type".

    Spec reference: "Table 8-9. Adapter Configuration Space Basic Attributes" and "Table 8-10. Adapter Types"
    IsDPOut Boolean True if it is a DP Out adapter. False if it is DP In.
    IsTunneled Boolean True if the protocol traffic is tunneled.
    MaximalLinkRate HexUInt8 The value from DP adapter configuration space register DP_COMMON_CAP[11..8] "Maximal Link Rate".
    MaximalLinkCount HexUInt8 The value from DP adapter configuration space register DP_COMMON_CAP[14..12] "Maximal Link Count".
  6. Event USB3AdapterInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    IsNewDeviceRouter Boolean True if it is reporting a port of a new device router. False if it is reporting a port status change. For rundown events, it is also false.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    AdapterNumber UInt8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    AdapterType HexUInt32 Adapter configuration space register ADP_CS_2[23..0]. It combines the values of "Adapter Type Protocol", "Adapter Type Version" and "Adapter Type Sub-Type".

    Spec reference: "Table 8-9. Adapter Configuration Space Basic Attributes" and "Table 8-10. Adapter Types"
    IsDownstream Boolean True if it is a downstream USB 3.x adapter. False if it is upstream.
    IsTunneled Boolean True if the protocol traffic is tunneled.
    ActualLinkRate HexUInt8 The value from USB 3.x adapter configuration space register ADP_USB3_CS_4[6..0] "Actual Link Rate".
  7. Event OtherAdapterInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event. False if it is reporting a new device router.
    IsNewDeviceRouter Boolean True if it is reporting a port of a new device router. False if it is reporting a port status change. For rundown events, it is also false.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    AdapterNumber UInt8 The "Adapter Number" from adapter configuration space register ADP_CS_3.
    AdapterType HexUInt32 Adapter configuration space register ADP_CS_2[23..0]. It combines the values of "Adapter Type Protocol", "Adapter Type Version" and "Adapter Type Sub-Type".

    Spec reference: "Table 8-9. Adapter Configuration Space Basic Attributes" and "Table 8-10. Adapter Types"
  8. Event InterDomainPeerInformation

    Property Value type Description
    IsRundownEvent Boolean True if it is a rundown event.
    DomainID HexUInt32 The domain ID of this device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of this device router.
    Lane0AdapterNumber UInt8 The lane 0 adapter number of the local port. Same as Lane0AdapterNumber of the "PortInformation" event.

    It can be used together with the "DomainID" and "TopologyID" properties above to find the matching "PortInformation" event.
    LocalDomainUUID GUID The domain UUID of the local domain in an inter-domain connection.
    RemoteDomainUUID GUID The domain UUID of the remote domain in an inter-domain connection.
    LocalRouteString UInt8FixedArray(7) The route string for the local port. It's in the 7-UINT8 topology ID format.
    RemoteRouteString UInt8FixedArray(7) The route string for the remote port. It's in the 7-UINT8 topology ID format
    MaxHopID UInt16 The "MaxHopID" property from the inter-domain properties block returned by the remote peer.
  9. Event DeviceRouterRemoval

    Property Value type Description
    DomainID HexUInt32 The domain ID of the device router.
    TopologyID UInt8FixedArray(7) The 7-byte topology ID of the device router.

Thunderbolt is a trademark of Intel Corporation or its subsidiaries.