_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;
};

Member

Hdr

Zeiger 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 der gesamten URB aufweisen.

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 USBD_INTERFACE_INFORMATION-Struktur mit variabler Länge, die die Schnittstelle und die neue alternative Einstellung für diese Schnittstelle sowie bei Bedarf die neuen maximalen Paketgrößen für die entsprechenden Pipes angibt. Weitere Informationen finden Sie in den Hinweisen.

Hinweise

Sie können das Makro GET_SELECT_INTERFACE_REQUEST_SIZE 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 zur Schnittstelle und ihrer alternativen Einstellung. Der Pipes-Member von USBD_INTERFACE_INFORMATION verweist auf ein Array von USBD_PIPE_INFORMATION-Strukturen . Das Array speichert Informationen zu den Pipes, 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 flag USBD_PF_CHANGE_MAX_PACKET in Pipes[i].PipeFlagsfest, und geben Sie dann den neuen Wert in an Pipes[i].MaximumPacketSize.

Nachdem der Bustreiber die Verarbeitung der URB_FUNCTION_SELECT_INTERFACE URB erfolgreich abgeschlossen hat, gibt er ein Array von Handles für jede Pipe im Pipes[i].PipeHandle Member zurück. Der Clienttreiber kann Pipehandles speichern, um E/A-Anforderungen an bestimmte Pipes zu senden.

Anforderungen

Anforderung Wert
Header usb.h (usb.h einschließen)

Weitere Informationen

Konfigurieren von USB-Geräten

URB

USB-Strukturen

USBD_INTERFACE_INFORMATION

_URB_HEADER