USB_PORT_CONNECTOR_PROPERTIES结构 (usbioctl.h)

USB_PORT_CONNECTOR_PROPERTIES结构与 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制请求一起使用,以检索有关特定 SuperSpeed 中心端口的信息。

语法

typedef struct _USB_PORT_CONNECTOR_PROPERTIES {
  ULONG               ConnectionIndex;
  ULONG               ActualLength;
  USB_PORT_PROPERTIES UsbPortProperties;
  USHORT              CompanionIndex;
  USHORT              CompanionPortNumber;
  WCHAR               CompanionHubSymbolicLinkName[1];
} USB_PORT_CONNECTOR_PROPERTIES, *PUSB_PORT_CONNECTOR_PROPERTIES;

成员

ConnectionIndex

在请求中查询的端口号。 ConnectionIndex 由调用方指定。 如果 SuperSpeed 中心上有 n 个端口,则端口编号为 1 到 n。 若要获取端口数,调用方首先发送 IOCTL_USB_GET_HUB_INFORMATION_EX I/O 控制请求。 请求检索中心上的最大端口号。

ActualLength

保存整个 USB_PORT_CONNECTOR_PROPERTIES 结构所需的字节数,包括包含配套中心的符号链接名称的字符串。 该字符串存储在 CompanionHubSymbolicLinkName 成员中。 ActualLength 值由IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES请求返回,由调用方用来分配缓冲区来保存接收的信息。 有关详细信息,请参阅 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

UsbPortProperties

端口属性。 完成IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES请求后,UsbPortProperties 包含指示端口属性和功能的一个或多个标志的按位 OR。 标志在 USB_PORT_PROPERTIES中定义。

CompanionIndex

ConnectionIndex () 指定的端口查询的端口关联的配套端口的索引。 如果有 n 个配套端口,则这些端口的索引从 0 到 n–1。

如果端口映射到多个配套端口, 则 CompanionIndex 在多个查询上递增,以枚举所有配套端口。

对于 SuperSpeed 中心和 xHCI 控制器, CompanionIndex 始终为 0。 有关详细信息,请参阅“备注”。

CompanionPortNumber

CompanionIndex 提供的配套端口的端口号。 如果查询的端口与其他中心上的端口共享 USB 连接器, CompanionPortNumber 表示另一个中心上的端口的端口号。

注意 对于 xHCI 控制器的根中心,共享端口可能位于同一中心。
 

CompanionHubSymbolicLinkName[1]

包含共享 USB 连接器的配套中心的符号链接的 Unicode 字符串。 如果存在配套中心, CompanionPortNumber 为非零。 否则, CompanionHubSymbolicLinkName [0]NULL

注解

SuperSpeed 3.0 中心包含两个独立的中心实现。 一个适用于 USB 2.0 设备,中心实现类似于现有的 2.0 中心。 另一个中心仅适用于 SuperSpeed 设备。 由于 USB 2.0 和 3.0 总线信号在电气上是独立的,因此这两个中心同时运行。 因此,当 SuperSpeed 中心连接到主机时,Windows 独立枚举这两个中心:一个中心与 USB 2.0 端口相关联,另一个中心与 USB 3.0 端口相关联。 每个中心都有其下游和上游端口。 USB 物理连接器在与这两个中心实现关联的端口之间共享。

同样,xHCI 控制器必须能够处理超速度、高速、全速和低速设备。 USB 3.0 规范要求 xHCI 控制器包含两个独立的执行单元,每个单元用于 USB 3.0 和 USB 2.0 总线速度。 USB 3.0 执行单元处理总线上的超速流量。 USB 2.0 执行单元必须处理低、完整和高速流量。 可以通过多种方式满足该要求。 例如,在一个实现中,USB 2.0 执行单元可以有下游 USB 1.1 执行单元或下游 USB 2.0 中心。 其他执行单元处理总线上的超速流量。 例如,在一个实现中,xHCI 控制器可以具有下游 USB 2.0 中心 (而不是 USB 2.0 主机控制器,) 事务翻译来处理全速和低速流量。 该下游中心与 SuperSpeed 根中心的端口共享连接器。

如果共享 USB 连接器,则通过 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制请求查询的端口由 ConnectionIndex 指定,共享连接器的 端口称为配套端口。 请求完成后, USB_PORT_CONNECTOR_PROPERTIES的 CompanionIndexCompanionPortNumberCompanionHubSymbolicLinkName成员可用于确定 在这些情况下的端口路由。

如果多个配套端口与正在查询的端口相关联,则应用程序可以通过在循环中发送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制请求并递增每个迭代中的 CompanionIndex 值来获取有关所有配套端口的信息。 枚举所有端口且没有与 CompanionIndex 中指定的索引关联的端口时,请求将成功完成, CompanionPortNumber 设置为 0, CompanionHubSymbolicLinkName 为 NULL。

若要获取有关附加到特定端口的设备运行速度的信息,应用程序可以发送 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O 控制请求。

要求

   
最低受支持的客户端 Windows 8
最低受支持的服务器 无受支持的版本
Header usbioctl.h (包括 Usbioctl.h)

另请参阅

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES

USB_PORT_PROPERTIES