struttura _URB_CONTROL_DESCRIPTOR_REQUEST (usb.h)
La struttura _URB_CONTROL_DESCRIPTOR_REQUEST viene usata dai driver client USB per ottenere o impostare descrittori in un dispositivo USB.
Sintassi
struct _URB_CONTROL_DESCRIPTOR_REQUEST {
struct _URB_HEADER Hdr;
PVOID Reserved;
ULONG Reserved0;
ULONG TransferBufferLength;
PVOID TransferBuffer;
PMDL TransferBufferMDL;
struct _URB *UrbLink;
struct _URB_HCD_AREA hca;
USHORT Reserved1;
UCHAR Index;
UCHAR DescriptorType;
USHORT LanguageId;
USHORT Reserved2;
};
Members
Hdr
Puntatore a una struttura di _URB_HEADER che specifica le informazioni sull'intestazione HEADER. Hdr.Function deve essere uno dei seguenti:
Hdr.Length deve essere uguale a sizeof(_URB_CONTROL_DESCRIPTOR_REQUEST)
.
Reserved
Riservato. Non usare.
Reserved0
Riservato. Non usare.
TransferBufferLength
Specifica la lunghezza, in byte, del buffer specificato in TransferBuffer o descritto in TransferBufferMDL. Il driver del controller host restituisce il numero di byte inviati o letti dalla pipe in questo membro.
TransferBuffer
Puntatore a un buffer residente per il trasferimento o è NULL se viene fornito un MDL in TransferBufferMDL.
TransferBufferMDL
Puntatore a un MDL che descrive un buffer residente o è NULL se viene fornito un buffer in TransferBuffer. Questo file MDL deve essere allocato da un pool non di paging.
UrbLink
Riservato. Non usare.
hca
Riservato. Non usare.
Reserved1
Riservato. Non usare.
Index
Specifica l'indice definito dal dispositivo del descrittore recuperato o impostato.
DescriptorType
Indica il tipo di descrittore recuperato o impostato. È necessario specificare uno dei valori seguenti:
costante usbspec.h | Valore | Versione USB |
---|---|---|
USB_DEVICE_DESCRIPTOR_TYPE | 0x01 | USB 1.1 |
USB_CONFIGURATION_DESCRIPTOR_TYPE | 0x02 | USB 1.1 |
USB_STRING_DESCRIPTOR_TYPE | 0x03 | USB 1.1 |
USB_INTERFACE_DESCRIPTOR_TYPE | 0x04 | USB 1.1 |
USB_ENDPOINT_DESCRIPTOR_TYPE | 0x05 | USB 1.1 |
USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE | 0x06 | USB 2.0 |
USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE | 0x07 | USB 2.0 |
USB_INTERFACE_POWER_DESCRIPTOR_TYPE | 0x08 | USB 2.0 |
USB_OTG_DESCRIPTOR_TYPE | 0x09 | USB 3.0 |
USB_DEBUG_DESCRIPTOR_TYPE | 0x0a | USB 3.0 |
USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE | 0x0b | USB 3.0 |
USB_BOS_DESCRIPTOR_TYPE | 0x0f | USB 3.0 |
USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE | 0x10 | USB 3.0 |
USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE | 0x30 | USB 3.0 |
USB_20_HUB_DESCRIPTOR_TYPE | 0x29 | USB 1.1 USB 2.0 |
USB_30_HUB_DESCRIPTOR_TYPE | 0x2a | USB 3.0 |
USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE | 0x31 | USB 3.1 |
LanguageId
Specifica l'ID lingua del descrittore da recuperare quando USB_STRING_DESCRIPTOR_TYPE è impostato in DescriptorType. Questo membro deve essere impostato su zero per qualsiasi altro valore in DescriptorType.
Reserved2
Riservato. Non usare.
Commenti
I driver possono usare la routine del servizio UsbBuildGetDescriptorRequest per formattare questo FILE. Se il chiamante passa un buffer troppo piccolo per contenere tutti i dati, il driver del bus tronca i dati per adattarsi al buffer senza errori.
Quando il chiamante richiede il descrittore del dispositivo, il driver del bus restituisce una struttura di dati USB_DEVICE_DESCRIPTOR .
Quando il chiamante richiede un descrittore di configurazione, il driver del bus restituisce il descrittore di configurazione in una struttura USB_CONFIGURATION_DESCRIPTOR , seguita dai descrittori di interfaccia ed endpoint per tale configurazione. Il driver può accedere ai descrittori di interfaccia ed endpoint come strutture USB_INTERFACE_DESCRIPTOR e USB_ENDPOINT_DESCRIPTOR . Il driver del bus restituisce anche i descrittori specifici della classe o specifici del dispositivo. Il sistema fornisce le routine del servizio USBD_ParseConfigurationDescriptorEx e USBD_ParseDescriptors per trovare singoli descrittori all'interno del buffer.
Quando il chiamante richiede un descrittore di stringa, il driver del bus restituisce una struttura USB_STRING_DESCRIPTOR . La stringa stessa si trova nel membro bString a lunghezza variabile del descrittore di stringa.
I membri riservati di questa struttura devono essere considerati opachi e sono riservati per l'uso del sistema.
Requisiti
Requisito | Valore |
---|---|
Intestazione | usb.h (include Usb.h) |