_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) |