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)

Vedi anche

URB

Strutture USB

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR

USB_ENDPOINT_DESCRIPTOR

USB_INTERFACE_DESCRIPTOR

USB_STRING_DESCRIPTOR

_URB_HEADER