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)

Weitere Informationen

IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION

USB-Strukturen