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 要求搭配使用的識別碼,以指定連線到指定埠之裝置目前的組態。 如需此值的說明,請參閱 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。 這兩個結構相同,但一個成員除外。 在擴充結構中, Speed 成員會指出裝置速度。
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) |