IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

Die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerungsanforderung wird von einer Anwendung gesendet, um Informationen zu einem bestimmten Port an einem USB-Hub abzurufen.

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES 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_PORT_CONNECTOR_PROPERTIES-Struktur . Der Aufrufer muss die Strukturmber wie folgt festlegen:

  • Der Aufrufer muss die Portnummer des ports angeben, der im ConnectionIndex-Element abgefragt wird. 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 das CompanionIndex-Element angeben. Für einen SuperSpeed-Hub muss der Aufrufer das CompanionIndex-Element auf 0 festlegen.

    Der Aufrufer kann CompanionIndex verwenden, um Portnummern abzurufen, die dem abgefragten Port zugeordnet sind. Wenn dem Port mehrere Begleitports zugeordnet sind, kann die Anwendung die Anforderung in einer Schleife senden, um alle Portnummern abzurufen. Beginnen Sie mit CompanionIndex , der auf 0 festgelegt ist, und erhöhen Sie den CompanionIndex-Wert in jeder Iteration, bis die Anforderung mit CompanionPortNumber auf 0 und CompanionHubSymbolicLinkName auf NULL abgeschlossen ist.

Eingabepufferlänge

Das Parameters.DeviceIoControl.InputBufferLength-Element gibt die Größe des vom Aufrufer zugewiesenen Puffers in Bytes an, auf den AssociatedIrp.SystemBuffer verweist. Weitere Informationen finden Sie unter Hinweise.

Ausgabepuffer

Bei der Ausgabe wird USB_PORT_CONNECTOR_PROPERTIES, auf den AssociatedIrp.SystemBuffer verweist, mit Informationen über den physischen Connector gefüllt, der dem Port zugeordnet ist.

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-Stapel Status auf die entsprechende Fehlerbedingung fest, z. B. STATUS_INVALID_PARAMETER oder STATUS_INSUFFICIENT_RESOURCES. Wenn der Hub nicht gestartet wurde oder nicht funktionsfähig ist, gibt die Anforderung STATUS_UNSUCCESSFUL zurück.

Hinweise

Der Aufrufer muss einen Puffer bereitstellen, der groß genug ist, um eine USB_PORT_CONNECTOR_PROPERTIES-Struktur und den symbolischen Linknamen eines Begleithubs aufzunehmen, wenn ein solcher Hub dem angegebenen Port zugeordnet ist. Um die Größe des zuzuordnenden Puffers abzurufen, muss der Aufrufer eine IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES Anforderung senden. In der Anforderung muss AssociatedIrp.SystemBuffer eine aufruferseitig zugewiesene USB_PORT_CONNECTOR_PROPERTIES-Struktur und Parameters.DeviceIoControl.InputBufferLength sein sizeof(USB_PORT_CONNECTOR_PROPERTIES). Nach erfolgreicher Fertigstellung gibt das ActualLength-Element von USB_PORT_CONNECTOR_PROPERTIES die tatsächliche Größe des Puffers an. Wenn ein symbolischer Linkname vorhanden ist, enthält der empfangene Wert die Größe der Zeichenfolge, die den Linknamen speichert.

Basierend auf dem ActualLength-Wert kann der Aufrufer dann einen Puffer zuordnen und die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES Anforderung erneut senden. Nach Abschluss der Anforderung wird der Puffer mit Portinformationen gefüllt, und das CompanionHubSymbolicLinkName-Element ist eine Unicode-Zeichenfolge, die den symbolischen Linknamen des Begleithubs enthält.

Anforderungen

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

Weitere Informationen

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES