Partager via


structure USB_PORT_CONNECTOR_PROPERTIES (usbioctl.h)

La structure USB_PORT_CONNECTOR_PROPERTIES est utilisée avec la demande de contrôle d’E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES pour récupérer des informations sur un port sur un hub SuperSpeed particulier.

Syntaxe

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;

Membres

ConnectionIndex

Numéro de port interrogé dans la requête. connectionIndex est spécifié par l’appelant. S’il existe n ports sur le hub SuperSpeed, les ports sont numérotés de 1 à n. Pour obtenir le nombre de ports, l’appelant envoie d’abord une demande de contrôle d’E/S IOCTL_USB_GET_HUB_INFORMATION_EX. La requête récupère le numéro de port le plus élevé sur le hub.

ActualLength

Nombre d’octets requis pour contenir l’ensemble de la structure USB_PORT_CONNECTOR_PROPERTIES, y compris la chaîne qui contient le nom de lien symbolique du hub complémentaire. Cette chaîne est stockée dans le membre CompanionHubSymbolicLinkName. La valeur ActualLength est retournée par la requête IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES et utilisée par l’appelant pour allouer une mémoire tampon pour contenir les informations reçues. Pour plus d’informations, consultez IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES.

UsbPortProperties

Propriétés du port. Une fois la demande de IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES terminée, UsbPortProperties contient une OU d’un ou plusieurs indicateurs indiquant les propriétés et les fonctionnalités du port. Les indicateurs sont définis dans USB_PORT_PROPERTIES.

CompanionIndex

Index du port complémentaire associé au port interrogé (spécifié par ConnectionIndex). S’il existe n ports compagnons, ces ports sont indexés de 0 à n-1.

Si un port est mappé à plusieurs ports compagnons, CompanionIndex est incrémenté sur plusieurs requêtes pour énumérer tous les ports compagnons.

Pour les contrôleurs SuperSpeed hubs et xHCI, CompanionIndex est toujours 0. Pour plus d’informations, consultez Remarques.

CompanionPortNumber

Numéro de port du port complémentaire donné par CompanionIndex. Si le port interrogé partage un connecteur USB avec un port sur un autre hub, CompanionPortNumber indique le numéro de port du port sur l’autre hub.

Remarque Pour le hub racine d’un contrôleur xHCI, le port partagé peut se trouver sur le même hub.
 

CompanionHubSymbolicLinkName[1]

Chaîne Unicode qui contient le lien symbolique du hub complémentaire qui partage le connecteur USB. Si un hub complémentaire existe, CompanionPortNumber n’est pas zéro. Sinon, CompanionHubSymbolicLinkName [0] est NULL .

Remarques

Un hub SuperSpeed 3.0 contient deux implémentations de hub indépendantes. L’un concerne les appareils USB 2.0 et l’implémentation du hub est similaire aux hubs 2.0 existants. L’autre hub est uniquement destiné aux appareils SuperSpeed. Étant donné que les signalisations de bus USB 2.0 et 3.0 sont électriquesment indépendantes, ces deux hubs fonctionnent simultanément. Par conséquent, lorsqu’un hub SuperSpeed est connecté à l’hôte, Windows énumère les deux hubs indépendamment ; un hub est associé à un port USB 2.0 et l’autre hub avec un port USB 3.0. Chaque hub a ses ports en aval et en amont. Les connecteurs physiques USB sont partagés entre les ports associés à ces deux implémentations de hub.

De même, un contrôleur xHCI doit être en mesure de gérer superspeed, haute vitesse, pleine vitesse et appareils à faible vitesse. La spécification USB 3.0 nécessite qu’un contrôleur xHCI contienne deux unités d’exécution indépendantes chacune pour les vitesses de bus USB 3.0 et USB 2.0. L’unité d’exécution USB 3.0 gère le trafic SuperSpeed sur le bus. L’unité d’exécution USB 2.0 doit gérer le trafic faible, complet et à haute vitesse. Cette exigence peut être remplie de plusieurs façons. Par exemple, dans une implémentation, l’unité d’exécution USB 2.0 peut avoir une unité d’exécution USB 1.1 en aval ou un hub USB 2.0 en aval. L’autre unité d’exécution gère le trafic SuperSpeed sur le bus. Par exemple, dans une implémentation, le contrôleur xHCI peut avoir un hub USB 2.0 en aval (au lieu d’un contrôleur hôte USB 2.0) avec un traducteur de transactions pour gérer le trafic à vitesse totale et à faible vitesse. Ce hub en aval partage des connecteurs avec les ports du hub racine SuperSpeed.

Dans les cas où les connecteurs USB sont partagés, le port interrogé par le biais de la demande de contrôle d’E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES est spécifié par ConnectionIndex, et le port qui partage le connecteur est appelé le port complémentaire . Une fois la demande terminée, les CompanionIndex, CompanionPortNumberet CompanionHubSymbolicLinkName membres de USB_PORT_CONNECTOR_PROPERTIES peuvent être utilisés pour déterminer le routage des ports dans ces cas.

Si plusieurs ports complémentaires sont associés au port interrogé, l’application peut obtenir des informations sur tous les ports complémentaires en envoyant la demande de contrôle d’E/S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES dans une boucle et en incrémentant la valeur CompanionIndex dans chaque itération. Lorsque tous les ports ont été énumérés et qu’aucun port n’est associé à l’index spécifié dans CompanionIndex, la requête se termine correctement, CompanionPortNumber est défini sur 0 et CompanionHubSymbolicLinkName a la valeur NULL.

Pour obtenir des informations sur la vitesse d’exploitation d’un appareil attaché à un port particulier, l’application peut envoyer la demande de contrôle d’E/S IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8
serveur minimum pris en charge Aucun pris en charge
d’en-tête usbioctl.h (include Usbioctl.h)

Voir aussi

IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES

USB_PORT_PROPERTIES