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.InputBufferLengthsizeof(USB_PORT_CONNECTOR_PROPERTIES) 成功完成后,USB_PORT_CONNECTOR_PROPERTIES的 ActualLength 成员指示缓冲区的实际大小。 如果存在符号链接名称,则接收的值包括存储链接名称的字符串的大小。

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

要求

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

另请参阅

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES