usbioctl.h) (USB_PORT_CONNECTOR_PROPERTIES 结构

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 集线器。 另一个执行单元处理总线上的 SuperSpeed 流量。 例如,在一个实现中,xHCI 控制器可以具有下游 USB 2.0 集线器 (而不是 USB 2.0 主控制器,) 事务转换器来处理全速和低速流量。 该下游中心与 SuperSpeed 根中心的端口共享连接器。

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

如果多个配套端口与正在查询的端口相关联,则应用程序可以通过循环发送 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
最低受支持的服务器 无受支持的版本
标头 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