USB_NODE_CONNECTION_INFORMATION_EX结构(usbioctl.h)
USB_NODE_CONNECTION_INFORMATION_EX 结构与 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 请求结合使用,以获取与指示的 USB 端口关联的连接的相关信息。
语法
typedef struct _USB_NODE_CONNECTION_INFORMATION_EX {
ULONG ConnectionIndex;
USB_DEVICE_DESCRIPTOR DeviceDescriptor;
UCHAR CurrentConfigurationValue;
UCHAR Speed;
BOOLEAN DeviceIsHub;
USHORT DeviceAddress;
ULONG NumberOfOpenPipes;
USB_CONNECTION_STATUS ConnectionStatus;
USB_PIPE_INFO PipeList[0];
} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX;
成员
ConnectionIndex
包含一个大于或等于 1 的值,该值指定端口的数目。
DeviceDescriptor
包含 USB_DEVICE_DESCRIPTOR 类型的结构,该结构报告枚举期间附加设备返回的 USB 设备描述符。
CurrentConfigurationValue
包含与 SetConfiguration 请求一起使用的 ID,用于指定连接到所指示端口的设备当前配置。 有关此值的说明,请参阅 USB 文档库提供的通用串行总线 3.1 规范中的第 9.4.7 节。
Speed
包含 USB_DEVICE_SPEED 类型的值,该值指示设备的速度。
DeviceIsHub
指示当 TRUE时,附加到端口的设备是中心。
DeviceAddress
包含附加到端口的设备 USB 分配的总线相对地址。
NumberOfOpenPipes
指示与端口关联的打开 USB 管道的数量。
ConnectionStatus
包含 USB_CONNECTION_STATUS 类型的枚举数,指示连接状态。
PipeList[0]
包含一个 USB_PIPE_INFO 类型的结构数组,该数组描述与端口关联的打开管道。 管道说明包括管道的计划偏移量以及关联的终结点描述符。 此信息可用于计算带宽使用情况。
言论
如果没有设备连接,IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX'仅返回有关端口的信息。 如果设备连接到端口 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX 则返回有关端口和已连接设备的信息。
USB_NODE_CONNECTION_INFORMATION_EX 结构是 USB_NODE_CONNECTION_INFORMATION的扩展版本。 这两个结构是相同的,但一个成员除外。 在扩展结构中,速度 成员表示设备速度。
USB_NODE_CONNECTION_INFORMATION_EX 结构的 Speed 成员是 UCHAR,它可以指定 USB_DEVICE_SPEED 枚举器的任何值。 Speed 成员最多支持 UsbHighSpeed (USB 2.0)。 若要确定设备是否支持 UsbSuperSpeed(USB 3.0),请使用 USB_NODE_CONNECTION_INFORMATION_EX_V2 结构。
USBView 示例中的以下C++代码片段 演示如何确定设备是否支持 UsbSuperSpeed(USB 3.0):
// Since the USB_NODE_CONNECTION_INFORMATION_EX is used to display
// the device speed, but the hub driver doesn't support indication
// of superspeed, we overwrite the value if the super speed
// data structures are available and indicate the device is operating
// at SuperSpeed.
if (connectionInfoEx->Speed == UsbHighSpeed
&& connectionInfoExV2 != NULL
&& (connectionInfoExV2->Flags.DeviceIsOperatingAtSuperSpeedOrHigher ||
connectionInfoExV2->Flags.DeviceIsOperatingAtSuperSpeedPlusOrHigher))
{
connectionInfoEx->Speed = UsbSuperSpeed;
}
要求
要求 | 价值 |
---|---|
标头 | usbioctl.h (包括 Usbioctl.h) |