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
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) |