IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
Le pilote de classe envoie cette requête pour obtenir l’ensemble du descripteur d’interface USB défini pour une fonction sur l’appareil.
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d'entrée
Pointeur vers une mémoire tampon qui contient une structure USBFN_INTERFACE_INFO .
Longueur de la mémoire tampon d’entrée
La longueur de la mémoire tampon d’entrée doit être au moins sizeof(USBFN_INTERFACE_INFO)
.
Mémoire tampon de sortie
Pointeur vers une mémoire tampon qui contient une structure USBFN_INTERFACE_INFO . L’extension de classe de fonction USB (UFX) remplit la structure avec l’ensemble du descripteur d’interface, y compris ses descripteurs de point de terminaison.
Longueur de la mémoire tampon de sortie
La longueur de la mémoire tampon de sortie doit être au moins sizeof(USBFN_INTERFACE_INFO)
.
Bloc d’état
Si la demande réussit, l’extension de classe de fonction USB (UFX) retourne STATUS_SUCCESS ou une autre valeur status pour laquelle NT_SUCCESS(status) est true. Sinon, il retourne une valeur status pour laquelle NT_SUCCESS(status) est FALSE.
Remarques
Cette demande doit être envoyée après l’envoi de la demande de IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS .
La longueur de l’ensemble du descripteur d’interface est variable. Le pilote de classe peut avoir besoin d’envoyer deux fois cette demande IOCTL pour obtenir l’ensemble du descripteur défini.
Si la longueur de l’ensemble du descripteur est supérieure à la longueur de mémoire tampon de sortie spécifiée, UFX définit le membre Size de USBFN_INTERFACE_INFO sur la longueur réelle de la mémoire tampon et échoue à la demande avec STATUS_BUFFER_TOO_SMALL. Le pilote doit ensuite allouer une mémoire tampon de sortie de longueur spécifiée par Size et renvoyer la demande.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | usbfnioctl.h |