Share via


_URB_SELECT_CONFIGURATION-Struktur (usb.h)

Die _URB_SELECT_CONFIGURATION-Struktur wird von Clienttreibern verwendet, um eine Konfiguration für ein USB-Gerät auszuwählen.

Syntax

struct _URB_SELECT_CONFIGURATION {
  struct _URB_HEADER            Hdr;
  PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
  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_CONFIGURATION sein, und Hdr.Length muss die Größe der gesamten URB aufweisen. Treiber können das in usbdlib.h definierte GET_SELECT_CONFIGURATION_REQUEST_SIZE Makro verwenden, um die Größe der URB abzurufen.

ConfigurationDescriptor

Zeiger auf einen initialisierten USB-Konfigurationsdeskriptor, der die konfiguration identifiziert, die auf dem Gerät verwendet werden soll. Wenn dieser Member NULL ist, wird das Gerät auf einen nicht konfigurierten Zustand festgelegt.

ConfigurationHandle

Enthält ein Handle, das für den Zugriff auf diese Konfiguration verwendet wird, wenn der Hostcontrollertreiber zurückgegeben wird. USB-Clienttreiber müssen diesen Member als undurchsichtig behandeln.

Interface

Gibt ein Array mit variabler Länge von USBD_INTERFACE_INFORMATION-Strukturen an, die jeweils eine Schnittstelle beschreiben, die von der ausgewählten Konfiguration unterstützt wird.

Bevor die Anforderung an den Hostcontrollertreiber gesendet wird, kann der Treiber eine alternative Einstellung für eine oder mehrere der in diesem Array enthaltenen Schnittstellen auswählen, indem er Elemente der USBD_INTERFACE_INFORMATION-Struktur für diese Schnittstelle festlegt.

Bei der Rückkehr vom Hostcontrollertreiber enthält dieser Member eine USBD_INTERFACE_INFORMATION-Struktur mit Daten, die die Funktionen und das Format der Endpunkte innerhalb dieser Schnittstelle beschreiben.

Hinweise

Ein URB_FUNCTION_SELECT_CONFIGURATION URB besteht aus einer _URB_SELECT_CONFIGURATION-Struktur , gefolgt von einer Sequenz von Arrays mit variabler Länge von USBD_INTERFACE_INFORMATION-Strukturen , wobei jedes Element im Array für jede eindeutige Schnittstellennummer in der Konfiguration gilt. Clienttreiber müssen genügend Arbeitsspeicher zuweisen, um eine USBD_PIPE_INFORMATION-Struktur für jeden Endpunkt in den ausgewählten Schnittstellen zu enthalten.

Treiber können die USBD_CreateConfigurationRequestEx-Dienstroutine verwenden, um die URB zuzuordnen.

Andere Member, die Teil dieser Struktur sind, aber hier nicht beschrieben werden, sollten als undurchsichtig behandelt und als für die Systemnutzung reserviert betrachtet werden.

Anforderungen

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

Weitere Informationen

URB

USB-Strukturen

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER