IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 IOCTL (usbioctl.h)

Das IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 E/A-Steuerelements wird von einer Anwendung gesendet, um Informationen zu den Protokollen abzurufen, die von einem bestimmten USB-Port eines Hubs unterstützt werden. Die Anforderung ruft auch die Geschwindigkeitsfunktion des Ports ab.

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 ist eine E/A-Steuerungsanforderung im Benutzermodus. Diese Anforderung richtet sich an das USB-Hubgerät (Universal Serial Bus) (GUID_DEVINTERFACE_USB_HUB).

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

AssociatedIrp.SystemBuffer verweist auf eine vom Aufrufer zugewiesene USB_NODE_CONNECTION_INFORMATION_EX_V2-Struktur .

Bei der Eingabe muss der Aufrufer die Strukturmber wie folgt festlegen:

  • Der Aufrufer muss die Portnummer im ConnectionIndex-Element angeben. ConnectionIndex muss ein Wert im Bereich von 1 bis n sein, wobei n die höchste Portnummer ist, die in einer vorherigen IOCTL_USB_GET_HUB_INFORMATION_EX E/A-Steuerungsanforderung abgerufen wurde.
  • Der Aufrufer muss im SupportedUsbProtocols-Member ein Protokollflag festlegen (siehe USB_PROTOCOLS). In Windows 8 muss SupportedUsbProtocols.Usb300 auf 1 festgelegt werden. Andernfalls schlägt die Anforderung mit dem STATUS_INVALID_PARAMETER Fehlercode fehl.
  • Der Aufrufer muss das Length-Element auf die Größe des vom Aufrufer zugewiesenen Puffers in Bytes festlegen, auf den AssociatedIrp.SystemBuffer verweist. Die Größe des Puffers muss sein sizeof (USB_NODE_CONNECTION_INFORMATION_EX_V2).

Eingabepufferlänge

Das Parameters.DeviceIoControl.InputBufferLength-Element gibt die Größe des vom Aufrufer zugewiesenen Puffers in Bytes an, dessen Größe gleich ist sizeof(USB_NODE_CONNECTION_INFORMATION_EX_V2).

Ausgabepuffer

Bei der Ausgabe wird die USB_NODE_CONNECTION_INFORMATION_EX_V2 Struktur, auf die von AssociatedIrp.SystemBuffer verwiesen wird, mit Informationen zum angefügten Gerät gefüllt.

Länge des Ausgabepuffers

Das Parameters.DeviceIoControl.OutputBufferLength-Element gibt die Größe des Ausgabepuffers SystemBuffer in Bytes an.

Statusblock

Der USB-Stapel legt Irp-IoStatus.Status> auf STATUS_SUCCESS fest, wenn die Anforderung erfolgreich ist. Andernfalls legt der USB-Treiberstapel Status auf die entsprechende Fehlerbedingung fest, z. B. STATUS_INVALID_PARAMETER oder STATUS_INSUFFICIENT_RESOURCES.

Hinweise

Die IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 Anforderung fragt den Hub des angegebenen Ports ab, um Informationen zu Protokollen abzurufen, die vom Port unterstützt werden, und die Funktion der Betriebsgeschwindigkeit, wenn ein Gerät an den Port angefügt ist.

Wenn die Anforderung erfolgreich abgeschlossen wurde, gibt das SupportedUsbProtocols.Usb200-Mitglied von USB_NODE_CONNECTION_INFORMATION_EX_V2 Protokolle an, die vom Port unterstützt werden. Wenn der Port für instance das von der USB 2.0-Spezifikation definierte Signalisierungsprotokoll unterstützt, wird SupportedUsbProtocols.Usb200 auf 1 festgelegt.

Beachten Sie, dass SupportedUsbProtocols.Usb110 für Hochgeschwindigkeits- und Vollgeschwindigkeitshubs immer auf 1 festgelegt ist. Das liegt daran, dass ein Hochgeschwindigkeitshub das USB 1.1-Protokoll über geteilte Transaktionen und Transaktionsübersetzer unterstützt. SupportedUsbProtocols.Usb110 ist für einen USB 3.0-Anschluss nie auf 1 festgelegt.

Darüber hinaus bestimmt die Anforderung auch, ob der Port und das angeschlossene Gerät in der Lage sind, bei SuperSpeed zu arbeiten. Wenn dies der Grund ist, wird das Flags.DeviceIsSuperSpeedCapableOrHigher-Element auf 1 festgelegt. Wenn das an den Port angeschlossene Gerät derzeit mit SuperSpeed betrieben wird, ist DeviceIsOperatingAtSuperSpeedOrHigher auf 1 festgelegt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Nicht unterstützt
Kopfzeile usbioctl.h (include Usbioctl.h)