USB_PORT_CONNECTOR_PROPERTIES Struktur (usbioctl.h)
Die USB_PORT_CONNECTOR_PROPERTIES-Struktur wird mit der IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerungsanforderung verwendet, um Informationen zu einem 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;
Member
ConnectionIndex
Die Portnummer, die in der Anforderung abgefragt wird. ConnectionIndex wird vom Aufrufer angegeben. Wenn auf dem SuperSpeed-Hub n Ports vorhanden sind, werden die Ports von 1 bis n nummeriert. Um die Anzahl der Ports abzurufen, sendet der Aufrufer 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 erforderlich sind, um die gesamte USB_PORT_CONNECTOR_PROPERTIES Struktur zu enthalten , einschließlich der Zeichenfolge, die den symbolischen Linknamen des Begleithubs enthält. Diese Zeichenfolge wird im CompanionHubSymbolicLinkName-Element gespeichert. Der ActualLength-Wert wird von der IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES-Anforderung zurückgegeben und vom Aufrufer verwendet, um einen Puffer zuzuweisen, der die empfangenen Informationen enthält. 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 OR eines oder mehrerer Flags, die die Eigenschaften und Funktionen des Ports angeben. Die Flags werden in USB_PORT_PROPERTIES definiert.
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 aufzulisten.
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 CompanionIndex angegeben wird. Wenn der abgefragte Port einen USB-Anschluss mit einem Port auf einem anderen Hub gemeinsam verwendet, 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, der den USB-Anschluss gemeinsam verwendet. Wenn ein Begleithub vorhanden ist, ist CompanionPortNumber ungleich null. Andernfalls ist CompanionHubSymbolicLinkName [0]NULL.
Hinweise
Ein SuperSpeed 3.0-Hub enthält zwei unabhängige Hubimplementierungen. Eine ist für USB 2.0-Geräte, 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, arbeiten beide Hubs gleichzeitig. Wenn also ein SuperSpeed-Hub mit dem Host verbunden ist, zählt Windows die beiden Hubs unabhängig voneinander auf. Ein Hub ist mit einem USB 2.0-Anschluss und der andere Hub mit einem USB 3.0-Anschluss verbunden. Jeder Hub verfügt über seine Downstream- und Upstream-Ports. Physische USB-Connectors werden von Ports gemeinsam genutzt, die diesen beiden Hubimplementierungen zugeordnet sind.
Ebenso muss ein xHCI-Controller in der Lage sein, SuperSpeed-, Hochgeschwindigkeits-, Full-Speed- und Low-Speed-Geräte zu verarbeiten. Die USB 3.0-Spezifikation erfordert einen xHCI-Controller, 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 schnellen Datenverkehr verarbeiten. Diese Anforderung kann auf viele Arten erfüllt werden. Für instance kann die USB 2.0-Ausführungseinheit in einer Implementierung entweder über eine nachgeschaltete USB 1.1-Ausführungseinheit oder einen nachgeschalteten USB 2.0-Hub verfügen. Die andere Ausführungseinheit verarbeitet SuperSpeed-Datenverkehr im Bus. Für instance 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 Datenverkehr mit voller Geschwindigkeit und niedriger Geschwindigkeit zu verarbeiten. Dieser Downstreamhub teilt Connectors mit den Ports des SuperSpeed-Stammhubs.
In Fällen, in denen USB-Connectors gemeinsam verwendet werden, wird der Port, der über die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerungsanforderung abgefragt wird, von ConnectionIndex angegeben, und der Port, der den Connector gemeinsam verwendet, wird als Begleitport bezeichnet. Nach Abschluss der Anforderung können die Member CompanionIndex, CompanionPortNumber und CompanionHubSymbolicLinkName von USB_PORT_CONNECTOR_PROPERTIES verwendet werden, um das Portrouting in diesen Fällen zu bestimmen.
Wenn dem abgefragten Port mehrere Begleitports zugeordnet sind, kann die Anwendung Informationen zu allen Begleitports abrufen, indem die IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES E/A-Steuerungsanforderung in einer Schleife gesendet und der CompanionIndex-Wert in jeder Iteration erhöht wird. Wenn alle Ports aufgelistet wurden und kein Port mit dem in CompanionIndex angegebenen Index verknüpft ist, wird die Anforderung erfolgreich abgeschlossen, CompanionPortNumber wird auf 0 und CompanionHubSymbolicLinkName auf NULL festgelegt.
Um Informationen zur Betriebsgeschwindigkeit eines Geräts zu erhalten, das an einen bestimmten Port angefügt ist, kann die Anwendung die IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 E/A-Steuerungsanforderung senden.
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_NODE_CONNECTION_INFORMATION_EX_V2