USB_DESCRIPTOR_REQUEST Struktur (usbioctl.h)
Die USB_DESCRIPTOR_REQUEST-Struktur wird mit der IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerelementanforderung verwendet, um einen oder mehrere Deskriptoren für das Gerät abzurufen, das dem angegebenen Verbindungsindex zugeordnet ist. Die Felder in dieser Struktur sind in der Universal Serial Bus 3.1-Spezifikation beschrieben, die in der USB-Dokumentbibliothek verfügbar ist.
Syntax
typedef struct _USB_DESCRIPTOR_REQUEST {
ULONG ConnectionIndex;
struct {
UCHAR bmRequest;
UCHAR bRequest;
USHORT wValue;
USHORT wIndex;
USHORT wLength;
} SetupPacket;
UCHAR Data[0];
} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST;
Member
ConnectionIndex
Der Port, dessen Deskriptoren abgerufen werden.
SetupPacket
Die Elemente der SetupPacket-Struktur , die gemäß der offiziellen Spezifikation definiert sind. Siehe Abschnitt 9.3.
SetupPacket.bmRequest
Der Typ der USB-Geräteanforderung (Standard, Klasse oder Anbieter), die Richtung der Datenübertragung und der Typ des Datenempfängers (Gerät, Schnittstelle oder Endpunkt). Bei der Eingabe an die IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerungsanforderung ignoriert der USB-Stapel den Wert von bmRequest und fügt einen Wert von 0x80 ein. Dieser Wert gibt eine Standard-USB-Geräteanforderung und eine Datenübertragung von Gerät zu Host an.
SetupPacket.bRequest
Die Anforderungsnummer. Bei der Eingabe an die IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerungsanforderung ignoriert der USB-Stapel den Wert von bRequest und fügt einen Wert von 0x06 ein. Dieser Wert gibt eine Anforderung von GET_DESCRIPTOR an.
SetupPacket.wValue
Bei der Eingabe an die IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerelementanforderung sollte der Aufrufer den Typ des deskriptors angeben, der im hohen Byte von wValue abgerufen werden soll, und den Deskriptorindex im niedrigen Byte. In der folgenden Tabelle sind die möglichen Deskriptortypen aufgeführt. Diese Konstantentypen werden im Usbspec.h-Header definiert, der im Windows Driver Kit enthalten ist.
Deskriptortyp | Bedeutung |
---|---|
USB_DEVICE_DESCRIPTOR_TYPE | Weist den USB-Stapel an, den Gerätedeskriptor zurückzugeben. |
USB_CONFIGURATION_DESCRIPTOR_TYPE | Weist den USB-Stapel an, den Konfigurationsdeskriptor und alle Schnittstellen-, Endpunkt-, klassen- und herstellerspezifischen Deskriptoren zurückzugeben, die der aktuellen Konfiguration zugeordnet sind. |
USB_STRING_DESCRIPTOR_TYPE | Weist den USB-Stapel an, den angegebenen Zeichenfolgendeskriptor zurückzugeben. |
USB_INTERFACE_DESCRIPTOR_TYPE | Weist den USB-Stapel an, den angegebenen Schnittstellendeskriptor zurückzugeben. |
USB_ENDPOINT_DESCRIPTOR_TYPE | Weist den USB-Stapel an, den angegebenen Endpunktdeskriptor zurückzugeben. |
SetupPacket.wIndex
Der gerätespezifische Index des Deskriptors, der abgerufen werden soll.
SetupPacket.wLength
Die Länge der Daten, die während der zweiten Phase der Steuerungsübertragung übertragen werden.
Data[0]
Bei der Ausgabe der IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerelementanforderung enthält dieses Element die abgerufenen Deskriptoren.
Hinweise
Wenn der Aufrufer im wValue-Member den Wert USB_CONFIGURATION_DESCRIPTOR_TYPE angibt, muss der Ausgabepuffer groß genug sein, um alle Deskriptoren aufzunehmen, die der aktuellen Konfiguration zugeordnet sind, andernfalls schlägt die Anforderung fehl.
Anforderungen
Anforderung | Wert |
---|---|
Header | usbioctl.h (include Usbioctl.h) |