_URB_SELECT_INTERFACE struttura (usb.h)
La struttura _URB_SELECT_INTERFACE viene usata dai driver client USB per selezionare un'impostazione alternativa per un'interfaccia o per modificare le dimensioni massime dei pacchetti di una pipe nella configurazione corrente in un dispositivo USB.
Sintassi
struct _URB_SELECT_INTERFACE {
struct _URB_HEADER Hdr;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
Members
Hdr
Puntatore a una struttura _URB_HEADER che specifica le informazioni sull'intestazione DELL'AREA. Hdr.Function deve essere URB_FUNCTION_SELECT_INTERFACE e Hdr.Length deve essere la dimensione dell'intero ENTITÀ.
ConfigurationHandle
Specifica l'handle alla configurazione a cui appartiene questa interfaccia. Il driver del controller host restituisce questo handle quando il client seleziona la configurazione con una richiesta di URB_FUNCTION_SELECT_CONFIGURATION.
Interface
Struttura a lunghezza variabile USBD_INTERFACE_INFORMATION che specifica l'interfaccia e la nuova impostazione alternativa per tale interfaccia e, se necessario, le nuove dimensioni massime dei pacchetti per le pipe corrispondenti. Per altre informazioni, vedere la sezione Osservazioni.
Commenti
È possibile usare la macro GET_SELECT_INTERFACE_REQUEST_SIZE per determinare le dimensioni dell'URB_FUNCTION_SELECT_INTERFACE URB e la routine UsbBuildSelectInterfaceRequest per formattare l'ENTITÀ.
La struttura USBD_INTERFACE_INFORMATION contiene informazioni sull'interfaccia e sulla relativa impostazione alternativa. Il membro Pipe di USBD_INTERFACE_INFORMATION punta a una matrice di strutture USBD_PIPE_INFORMATION . La matrice archivia informazioni sulle pipe associate agli endpoint dell'interfaccia. È possibile eseguire l'override di alcune impostazioni predefinite per una pipe, ad esempio le dimensioni massime dei pacchetti. Per modificare le dimensioni massime dei pacchetti, impostare il flag USBD_PF_CHANGE_MAX_PACKET in Pipes[i].PipeFlags
e quindi specificare il nuovo valore in Pipes[i].MaximumPacketSize
.
Dopo aver completato correttamente l'elaborazione dell'URB_FUNCTION_SELECT_INTERFACE URB, restituisce una matrice di handle per ogni pipe del Pipes[i].PipeHandle
membro. Il driver client può archiviare handle di pipe per inviare richieste di I/O a pipe specifiche.
Requisiti
Requisito | Valore |
---|---|
Intestazione | usb.h (include Usb.h) |