IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES I/O 控制请求由应用程序发送,以检索有关 USB 集线器上特定端口的信息。

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 是用户模式 I/O 控制请求。 此请求面向通用串行总线 (USB) 集线器设备 (GUID_DEVINTERFACE_USB_HUB) 。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

AssociatedIrp.SystemBuffer 指向调用方分配 的USB_PORT_CONNECTOR_PROPERTIES 结构。 调用方必须按如下所示设置结构成员:

  • 调用方必须指定 ConnectionIndex 成员中正在查询的端口的端口号。 ConnectionIndex 必须是介于 1 到 n 范围内的值,其中 n 是上一 个 IOCTL_USB_GET_HUB_INFORMATION_EX I/O 控制请求中检索到的最高端口号。
  • 调用方必须指定 CompanionIndex 成员。 对于 SuperSpeed 中心,调用方必须将 CompanionIndex 成员设置为 0。

    调用方可以使用 CompanionIndex 获取与所查询的端口关联的端口号。 如果多个配套端口与端口相关联,则应用程序可以循环发送请求,以获取所有端口号。 从 CompanionIndex 设置为 0 开始,并在每次迭代中递增 CompanionIndex 值,直到请求完成 且 CompanionPortNumber 设置为 0 且 CompanionHubSymbolicLinkName 为 NULL。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 成员指示 AssociatedIrp.SystemBuffer 指向的调用方分配缓冲区的大小(以字节为单位)。 有关详细信息,请参阅备注。

输出缓冲区

在输出时,AssociatedIrp.SystemBuffer 指向的 USB_PORT_CONNECTOR_PROPERTIES 填充了与端口关联的物理连接器的相关信息。

输出缓冲区长度

Parameters.DeviceIoControl.OutputBufferLength 成员指示输出缓冲区 SystemBuffer 的大小(以字节为单位)。

状态块

如果请求成功,USB 堆栈会将 Irp-IoStatus.Status> 设置为STATUS_SUCCESS。 否则,USB 堆栈会将 “状态” 设置为适当的错误条件,例如STATUS_INVALID_PARAMETER或STATUS_INSUFFICIENT_RESOURCES。 如果中心尚未启动或无法正常工作,则请求将返回STATUS_UNSUCCESSFUL。

注解

如果此类中心与指定端口关联,调用方必须提供足以容纳 USB_PORT_CONNECTOR_PROPERTIES 结构的缓冲区以及配套中心的符号链接名称。 若要获取要分配的缓冲区的大小,调用方必须发送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 请求。 在请求中, AssociatedIrp.SystemBuffer 必须是调用方分配 的USB_PORT_CONNECTOR_PROPERTIES 结构, Parameters.DeviceIoControl.InputBufferLength 必须为 sizeof(USB_PORT_CONNECTOR_PROPERTIES)。 成功完成后,USB_PORT_CONNECTOR_PROPERTIESActualLength 成员指示缓冲区的实际大小。 如果存在符号链接名称,则收到的值包括存储链接名称的字符串的大小。

然后,根据 ActualLength 值,调用方可以分配缓冲区并再次发送 IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 请求。 请求完成后,缓冲区将填充端口信息, CompanionHubSymbolicLinkName 成员是包含配套中心的符号链接名称的 Unicode 字符串。

要求

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

另请参阅

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES