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 結構。
下列C++來自 USBView 範例的代碼段 示範如何判斷裝置是否支援 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) |