USB_PORT_CONNECTOR_PROPERTIES Struktur (usbioctl.h)
Die USB_PORT_CONNECTOR_PROPERTIES-Struktur wird mit der IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerelementanforderung verwendet, um Informationen über einen Port auf einem bestimmten SuperSpeed-Hub abzurufen.
Syntax
typedef struct _USB_PORT_CONNECTOR_PROPERTIES {
ULONG ConnectionIndex;
ULONG ActualLength;
USB_PORT_PROPERTIES UsbPortProperties;
USHORT CompanionIndex;
USHORT CompanionPortNumber;
WCHAR CompanionHubSymbolicLinkName[1];
} USB_PORT_CONNECTOR_PROPERTIES, *PUSB_PORT_CONNECTOR_PROPERTIES;
Angehörige
ConnectionIndex
Die Portnummer, die in der Anforderung abgefragt wird. ConnectionIndex- wird vom Aufrufer angegeben. Wenn n Ports auf dem SuperSpeed-Hub vorhanden sind, werden die Ports von 1 bis nnummeriert. Um die Anzahl der Ports abzurufen, sendet der Anrufer zuerst eine IOCTL_USB_GET_HUB_INFORMATION_EX E/A-Steuerungsanforderung. Die Anforderung ruft die höchste Portnummer auf dem Hub ab.
ActualLength
Die Anzahl der Bytes, die zum Halten der gesamten USB_PORT_CONNECTOR_PROPERTIES Struktur erforderlich sind, einschließlich der Zeichenfolge, die den symbolischen Linknamen des Begleithubs enthält. Diese Zeichenfolge wird im CompanionHubSymbolicLinkName Member gespeichert. Der ActualLength--Wert wird von der IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES Anforderung zurückgegeben und vom Aufrufer verwendet, um einen Puffer für die empfangenen Informationen zuzuweisen. Weitere Informationen finden Sie unter IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES.
UsbPortProperties
Die Porteigenschaften. Nach Abschluss der IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES Anforderung enthält UsbPortProperties ein bitweises ODER eines oder mehrerer Flags, die die Eigenschaften und Funktionen des Ports angeben. Die Flags werden in USB_PORT_PROPERTIESdefiniert.
CompanionIndex
Der Index des Begleitports, der dem abgefragten Port zugeordnet ist (angegeben durch ConnectionIndex). Wenn n Begleitports vorhanden sind, werden diese Ports von 0 bis n–1 indiziert.
Wenn ein Port mehreren Begleitports zugeordnet ist, wird CompanionIndex- für mehrere Abfragen erhöht, um alle Begleitports aufzählen zu können.
Für SuperSpeed-Hubs und xHCI-Controller ist CompanionIndex- immer 0. Weitere Informationen finden Sie in den Hinweisen.
CompanionPortNumber
Die Portnummer des Begleitports, der von CompanionIndexangegeben wird. Wenn der abgefragte Port einen USB-Anschluss mit einem Anschluss auf einem anderen Hub teilt, gibt CompanionPortNumber die Portnummer des Ports auf dem anderen Hub an.
CompanionHubSymbolicLinkName[1]
Die Unicode-Zeichenfolge, die die symbolische Verknüpfung des Begleithubs enthält, die den USB-Anschluss gemeinsam verwendet. Wenn ein Begleithub vorhanden ist, ist CompanionPortNumber- nicht null. Andernfalls ist CompanionHubSymbolicLinkName [0]NULL-.
Bemerkungen
Ein SuperSpeed 3.0-Hub enthält zwei unabhängige Hubimplementierungen. Eines ist für USB 2.0-Geräte vorgesehen, und die Hubimplementierung ähnelt vorhandenen 2.0-Hubs. Der andere Hub ist nur für SuperSpeed-Geräte vorgesehen. Da die USB 2.0- und 3.0-Bussignalisierung elektrisch unabhängig sind, funktionieren beide Hubs gleichzeitig. Wenn also ein SuperSpeed-Hub mit dem Host verbunden ist, listet Windows die beiden Hubs unabhängig auf; ein Hub ist mit einem USB 2.0-Anschluss und dem anderen Hub mit einem USB 3.0-Anschluss verbunden. Jeder Hub verfügt über seine downstream- und upstream-Ports. USB-physische Anschlüsse werden zwischen Ports gemeinsam genutzt, die diesen beiden Hubimplementierungen zugeordnet sind.
Ebenso muss ein xHCI-Controller in der Lage sein, SuperSpeed-, Hochgeschwindigkeits-, Vollgeschwindigkeits- und Low-Speed-Geräte zu verarbeiten. Für die USB 3.0-Spezifikation ist ein xHCI-Controller erforderlich, der jeweils zwei unabhängige Ausführungseinheiten für USB 3.0- und USB 2.0-Busgeschwindigkeiten enthält. Die USB 3.0-Ausführungseinheit verarbeitet SuperSpeed-Datenverkehr auf dem Bus. Die USB 2.0-Ausführungseinheit muss niedrigen, vollständigen und hohen Geschwindigkeitsverkehr verarbeiten. Diese Anforderung kann auf viele Arten erfüllt werden. In einer Implementierung kann die USB 2.0-Ausführungseinheit beispielsweise über eine nachgeschaltete USB 1.1-Ausführungseinheit oder einen nachgeschalteten USB 2.0-Hub verfügen. Die andere Ausführungseinheit verarbeitet den SuperSpeed-Verkehr auf dem Bus. Beispielsweise kann der xHCI-Controller in einer Implementierung über einen nachgeschalteten USB 2.0-Hub (anstelle eines USB 2.0-Hostcontrollers) mit einem Transaktionsübersetzer verfügen, um Vollgeschwindigkeits- und Low-Speed-Datenverkehr zu verarbeiten. Dieser downstreame Hub teilt Connectors mit den Ports des SuperSpeed-Stammhubs.
In Fällen, in denen USB-Anschlüsse freigegeben werden, wird der Port, der über die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerungsanforderung abgefragt wird, durch ConnectionIndex-angegeben, und der Port, der den Verbinder teilt, wird als Begleitportbezeichnet. Nach Abschluss der Anforderung können die CompanionIndex-, CompanionPortNumber-und CompanionHubSymbolicLinkName Member von USB_PORT_CONNECTOR_PROPERTIES verwendet werden, um das Portrouting in diesen Fällen zu bestimmen.
Wenn mehr als ein Begleitport dem abgefragten Port zugeordnet ist, kann die Anwendung Informationen zu allen Begleitports abrufen, indem die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerelementanforderung in einer Schleife gesendet und der CompanionIndex- wert in jeder Iteration erhöht wird. Wenn alle Ports aufgezählt wurden und dem in CompanionIndex-angegebenen Index kein Port zugeordnet ist, wird die Anforderung erfolgreich abgeschlossen, CompanionPortNumber auf 0 festgelegt ist, und CompanionHubSymbolicLinkName NULL ist.
Um Informationen über die Betriebsgeschwindigkeit eines Geräts abzurufen, das an einen bestimmten Port angeschlossen ist, kann die Anwendung die IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 E/A-Steuerungsanforderung senden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
mindestens unterstützte Server- | Keine unterstützt |
Header- | usbioctl.h (include Usbioctl.h) |
Siehe auch
IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2