共用方式為


IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 IOCTL (usbioctl.h)

應用程式會傳送 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 I/O 控制項,以擷取中樞上特定 USB 埠所支援的通訊協議相關信息。 要求也會擷取埠的速度功能。

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 是使用者模式 I/O 控制要求。 此要求的目標為 USB) 中樞裝置 (GUID_DEVINTERFACE_USB_HUB) 的通用序列總線 (。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

AssociatedIrp.SystemBuffer 指向呼叫端配置的 USB_NODE_CONNECTION_INFORMATION_EX_V2 結構。

在輸入時,呼叫端必須設定結構成員,如下所示:

  • 呼叫端必須在 ConnectionIndex 成員中指定埠號碼。 ConnectionIndex 必須是介於 1 到 n 範圍內的值,其中 n 是先前 IOCTL_USB_GET_HUB_INFORMATION_EX I/O 控制要求中擷取的最高埠號碼。
  • 呼叫端必須在 SupportedUsbProtocols 成員中設定通訊協定旗標, (請參閱 USB_PROTOCOLS) 。 在 Windows 8 中,SupportedUsbProtocols.Usb300 必須設定為 1。 否則,要求會失敗,並出現STATUS_INVALID_PARAMETER錯誤碼。
  • 呼叫端必須將 Length 成員設定為 AssociatedIrp.SystemBuffer 所指向之呼叫端配置緩衝區的大小,以位元組為單位。 緩衝區的大小必須是 sizeof (USB_NODE_CONNECTION_INFORMATION_EX_V2)

輸入緩衝區長度

Parameters.DeviceIoControl.InputBufferLength 成員會指出呼叫端配置緩衝區的大小,以位元組為單位,其大小等於 sizeof(USB_NODE_CONNECTION_INFORMATION_EX_V2)

輸出緩衝區

在輸出中,AssociatedIrp.SystemBuffer 所指向的USB_NODE_CONNECTION_INFORMATION_EX_V2結構會填入連結裝置的相關信息。

輸出緩衝區長度

Parameters.DeviceIoControl.OutputBufferLength 成員會指出輸出緩衝區 SystemBuffer 的大小,以位元組為單位。

狀態區塊

如果要求成功,USB 堆疊會將 Irp-IoStatus.Status> 設定為STATUS_SUCCESS。 否則,USB 驅動程式堆疊會將 [狀態 ] 設定為適當的錯誤狀況,例如STATUS_INVALID_PARAMETER或STATUS_INSUFFICIENT_RESOURCES。

備註

如果裝置已連結至埠, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 要求會查詢指定的埠中樞,以取得埠所支援的通訊協定和作業速度功能的相關信息。

如果要求順利完成,USB_NODE_CONNECTION_INFORMATION_EX_V2SupportedUsbProtocols.Usb200 成員表示埠支持的通訊協定。 例如,如果埠支援 USB 2.0 規格所定義的訊號通訊協定, 則 SupportedUsbProtocols.Usb200 會設定為 1。

請注意,針對高速和全速中樞, SupportedUsbProtocols.Usb110 一律設定為 1。 這是因為支援高速的中樞透過分割交易和交易翻譯工具支援USB 1.1通訊協定。 針對USB 3.0埠,SupportedUsbProtocols.Usb110 永遠不會設定為1。

此外,要求也會判斷埠和連接的裝置是否能夠在 SuperSpeed 上運作。 如果是, Flags.DeviceIsSuperSpeedCapableOrHigher 成員會設定為 1。 如果連結至埠的裝置目前在 SuperSpeed 上運作, 則 DeviceIsOperatingAtSuperSpeedOrHigher 會設定為 1。

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 都不支援
標頭 usbioctl.h (包含 Usbioctl.h)