Partager via


IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES IOCTL (usbioctl.h)

La demande de contrôle d’E /S IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES est envoyée par une application pour récupérer des informations sur un port spécifique sur un hub USB.

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES est une demande de contrôle d’E/S en mode utilisateur. Cette demande cible le périphérique hub USB (GUID_DEVINTERFACE_USB_HUB).

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

AssociatedIrp.SystemBuffer pointe vers une structure de USB_PORT_CONNECTOR_PROPERTIES allouée par l’appelant . L’appelant doit définir les membres de la structure comme suit :

  • L’appelant doit spécifier le numéro de port du port interrogé dans le membre ConnectionIndex . ConnectionIndex doit être une valeur comprise entre 1 et n, où n est le numéro de port le plus élevé récupéré dans une demande de contrôle d’E /S IOCTL_USB_GET_HUB_INFORMATION_EX précédente.
  • L’appelant doit spécifier le membre CompanionIndex . Pour un hub SuperSpeed, l’appelant doit définir le membre CompanionIndex sur 0.

    L’appelant peut utiliser CompanionIndex pour obtenir les numéros de port associés au port interrogé. Si plusieurs ports complémentaires sont associés au port, pour obtenir tous les numéros de port, l’application peut envoyer la requête dans une boucle. Commencez par CompanionIndex défini sur 0 et incrémentez la valeur CompanionIndex dans chaque itération jusqu’à ce que la requête se termine avec CompanionPortNumber défini sur 0 et que CompanionHubSymbolicLinkName a la valeur NULL.

Longueur de la mémoire tampon d’entrée

Le membre Parameters.DeviceIoControl.InputBufferLength indique la taille, en octets, de la mémoire tampon allouée à l’appelant pointée par AssociatedIrp.SystemBuffer. Pour plus d’informations, consultez Remarques.

Mémoire tampon de sortie

Sur la sortie, USB_PORT_CONNECTOR_PROPERTIES, pointé par AssociatedIrp.SystemBuffer, est rempli d’informations sur le connecteur physique associé au port.

Longueur de la mémoire tampon de sortie

Le membre Parameters.DeviceIoControl.OutputBufferLength indique la taille, en octets, de la mémoire tampon de sortie SystemBuffer.

Bloc d’état

La pile USB définit Irp-IoStatus.Status> sur STATUS_SUCCESS si la demande réussit. Sinon, la pile USB définit Status sur la condition d’erreur appropriée, telle que STATUS_INVALID_PARAMETER ou STATUS_INSUFFICIENT_RESOURCES. Si le hub n’a pas été démarré ou n’est pas fonctionnel, la demande retourne STATUS_UNSUCCESSFUL.

Remarques

L’appelant doit fournir une mémoire tampon suffisamment grande pour contenir une structure USB_PORT_CONNECTOR_PROPERTIES et le nom de lien symbolique d’un hub complémentaire, si un tel hub est associé au port spécifié. Pour obtenir la taille de la mémoire tampon à allouer, l’appelant doit envoyer une requête IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES . Dans la requête, AssociatedIrp.SystemBuffer doit être une structure USB_PORT_CONNECTOR_PROPERTIES allouée par l’appelant et Parameters.DeviceIoControl.InputBufferLength doit être sizeof(USB_PORT_CONNECTOR_PROPERTIES). Une fois l’opération terminée, le membre ActualLength de USB_PORT_CONNECTOR_PROPERTIES indique la taille réelle de la mémoire tampon. S’il existe un nom de lien symbolique, la valeur reçue inclut la taille de la chaîne qui stocke le nom du lien.

En fonction de la valeur ActualLength , l’appelant peut ensuite allouer une mémoire tampon et renvoyer la requête IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES . Une fois la demande terminée, la mémoire tampon est remplie d’informations de port et le membre CompanionHubSymbolicLinkName est une chaîne Unicode qui contient le nom de lien symbolique du hub complémentaire.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Aucun pris en charge
En-tête usbioctl.h (inclure Usbioctl.h)

Voir aussi

IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES

USB_HUB_INFORMATION_EX

USB_PORT_CONNECTOR_PROPERTIES