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 werden in der Spezifikation universal Serial Bus 3.1 beschrieben, die unter USB-Dokumentbibliothekverfü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;
Angehörige
ConnectionIndex
Der Port, dessen Deskriptoren abgerufen werden.
SetupPacket
Die Elemente der SetupPacket- Struktur gemäß der offiziellen Spezifikation definiert. Siehe Abschnitt 9.3.
SetupPacket.bmRequest
Der Typ der USB-Geräteanforderung (Standard, Klasse oder Anbieter), die Richtung der Datenübertragung und den Typ des Datenempfängers (Gerät, Schnittstelle oder Endpunkt). Bei der Eingabe an die IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerelementanforderung ignoriert der USB-Stapel den Wert bmRequest- und fügt einen Wert von 0x80 ein. Dieser Wert gibt eine standardmäßige USB-Geräteanforderung und eine Geräte-zu-Host-Datenübertragung an.
SetupPacket.bRequest
Die Anforderungsnummer. Bei der Eingabe an die IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION E/A-Steuerelementanforderung ignoriert der USB-Stapel den Wert bRequest- und fügt einen Wert von 0x06 ein. Dieser Wert gibt eine Anforderung von GET_DESCRIPTORan.
SetupPacket.wValue
Bei Eingaben 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- und dem Deskriptorindex im niedrigen Byte abgerufen werden soll. In der folgenden Tabelle sind die möglichen Beschreibungstypen 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, Endpunkte, klassenspezifischen und anbieterspezifischen 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 abzurufenden Deskriptors.
SetupPacket.wLength
Die Länge der Daten, die während der zweiten Phase der Kontrollü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.
Bemerkungen
Wenn der Aufrufer einen Wert von USB_CONFIGURATION_DESCRIPTOR_TYPE im wValue--Element angibt, muss der Ausgabepuffer groß genug sein, um alle Deskriptoren, die der aktuellen Konfiguration zugeordnet sind, zu enthalten, oder die Anforderung schlägt fehl.
Anforderungen
Anforderung | Wert |
---|---|
Header- | usbioctl.h (include Usbioctl.h) |