Freigeben über


IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 IOCTL (usbioctl.h)

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

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 ist eine Benutzermodus-E/A-Steuerelementanforderung. Diese Anforderung zielt auf das Usb-Hubgerät (Universal Serial Bus) (GUID_DEVINTERFACE_USB_HUB) ab.

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 Strukturmmber wie folgt festlegen:

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

Eingabepufferlänge

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

Ausgabepuffer

Bei der Ausgabe wird die USB_NODE_CONNECTION_INFORMATION_EX_V2 Struktur, auf die AssociatedIrp.SystemBuffer verweist, mit Informationen über das angeschlossene Gerät gefüllt.

Länge des Ausgabepuffers

Das Parameters.DeviceIoControl.OutputBufferLength Member gibt die Größe des Ausgabepuffers in Bytes SystemBuffer-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.

Bemerkungen

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

Wenn die Anforderung erfolgreich abgeschlossen wird, gibt das SupportedUsbProtocols.Usb200 Mitglied von USB_NODE_CONNECTION_INFORMATION_EX_V2 protokolle an, die vom Port unterstützt werden. Wenn der Port beispielsweise 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 für einen USB 3.0-Anschluss nie auf 1 festgelegt ist.

Darüber hinaus bestimmt die Anforderung auch, ob der Port und das angeschlossene Gerät in SuperSpeed arbeiten können. Wenn dies der Grund ist, wird der Flags.DeviceIsSuperSpeedCapableOrHigher Member auf 1 festgelegt. Wenn das an den Port angeschlossene Gerät derzeit bei SuperSpeed ausgeführt wird, wird DeviceIsOperatingAtSuperSpeedOrHigher auf 1 festgelegt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Keine unterstützt
Header- usbioctl.h (include Usbioctl.h)