_URB_SELECT_INTERFACE Struktur (usb.h)
Die _URB_SELECT_INTERFACE Struktur wird von USB-Clienttreibern verwendet, um eine alternative Einstellung für eine Schnittstelle auszuwählen oder die maximale Paketgröße einer Pipe in der aktuellen Konfiguration auf einem USB-Gerät zu ändern.
Syntax
struct _URB_SELECT_INTERFACE {
struct _URB_HEADER Hdr;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
Angehörige
Hdr
Zeigen Sie auf eine _URB_HEADER Struktur, die die URB-Headerinformationen angibt. Hdr.Function- muss URB_FUNCTION_SELECT_INTERFACE sein, und Hdr.Length- muss die Größe des gesamten URB sein.
ConfigurationHandle
Gibt das Handle für die Konfiguration an, zu der diese Schnittstelle gehört. Der Hostcontrollertreiber gibt dieses Handle zurück, wenn der Client die Konfiguration mit einer URB_FUNCTION_SELECT_CONFIGURATION Anforderung auswählt.
Interface
Eine variable Länge USBD_INTERFACE_INFORMATION Struktur, die die Schnittstelle und die neue alternative Einstellung für diese Schnittstelle angibt, und bei Bedarf die neuen maximalen Paketgrößen für die entsprechenden Rohre. Weitere Informationen finden Sie in den Hinweisen.
Bemerkungen
Sie können das GET_SELECT_INTERFACE_REQUEST_SIZE Makro verwenden, um die Größe der URB_FUNCTION_SELECT_INTERFACE URB und die UsbBuildSelectInterfaceRequest Routine zum Formatieren der URB zu bestimmen.
Die USBD_INTERFACE_INFORMATION-Struktur enthält Informationen über die Schnittstelle und ihre alternative Einstellung. Das Pipes Member von USBD_INTERFACE_INFORMATION verweist auf ein Array von USBD_PIPE_INFORMATION Strukturen. Das Array speichert Informationen zu den Rohren, die den Endpunkten der Schnittstelle zugeordnet sind. Sie können bestimmte Standardeinstellungen für eine Pipe außer Kraft setzen, z. B. die maximale Paketgröße. Um die maximale Paketgröße zu ändern, legen Sie das USBD_PF_CHANGE_MAX_PACKET Flag in Pipes[i].PipeFlags
fest, und geben Sie dann den neuen Wert in Pipes[i].MaximumPacketSize
an.
Nachdem der Bustreiber die Verarbeitung des URB_FUNCTION_SELECT_INTERFACE URB erfolgreich abgeschlossen hat, gibt er ein Array von Ziehpunkten für jedes Rohr im Pipes[i].PipeHandle
-Element zurück. Der Clienttreiber kann Rohrziehpunkte speichern, um E/A-Anforderungen an bestimmte Rohre zu senden.
Anforderungen
Anforderung | Wert |
---|---|
Header- | usb.h (include Usb.h) |