IOCTL_INTERNAL_USBFN_GET_INTERFACE_DESCRIPTOR_SET IOCTL (usbfnioctl.h)
Il driver di classe invia questa richiesta per ottenere l'intero descrittore dell'interfaccia USB impostato per una funzione nel dispositivo.
Codice principale
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer di input
Puntatore a un buffer contenente una struttura USBFN_INTERFACE_INFO .
Lunghezza del buffer di input
La lunghezza del buffer di input deve essere almeno sizeof(USBFN_INTERFACE_INFO)
.
Buffer di output
Puntatore a un buffer contenente una struttura USBFN_INTERFACE_INFO . L'estensione della classe di funzione USB (UFX) popola la struttura con l'intero set di descrittori di interfaccia, inclusi i descrittori dell'endpoint.
Lunghezza del buffer di output
La lunghezza del buffer di output deve essere almeno sizeof(USBFN_INTERFACE_INFO)
.
Blocco dello stato
Se la richiesta ha esito positivo, l'estensione della classe di funzione USB (UFX) restituisce STATUS_SUCCESS o un altro valore di stato per il quale NT_SUCCESS(stato) è uguale a TRUE. In caso contrario, restituisce un valore di stato per il quale NT_SUCCESS(status) è uguale a FALSE.
Commenti
Questa richiesta deve essere inviata dopo l'invio della richiesta di IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS .
La lunghezza dell'intero descrittore di interfaccia è variabile. Il driver di classe potrebbe dover inviare due volte questa richiesta IOCTL per ottenere l'intero set di descrittori.
Se la lunghezza dell'intero set di descrittore è maggiore della lunghezza del buffer di output specificata, UFX imposta il membro Size di USBFN_INTERFACE_INFO sulla lunghezza effettiva del buffer e non riesce la richiesta con STATUS_BUFFER_TOO_SMALL. Il driver deve quindi allocare un buffer di output di lunghezza specificato da Size e inviare di nuovo la richiesta.
Requisiti
Requisito | Valore |
---|---|
Intestazione | usbfnioctl.h |