Compartilhar via


estrutura _URB_CONTROL_DESCRIPTOR_REQUEST (usb.h)

A estrutura _URB_CONTROL_DESCRIPTOR_REQUEST é usada por drivers de cliente USB para obter ou definir descritores em um dispositivo USB.

Sintaxe

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;
};

Membros

Hdr

Ponteiro para uma estrutura _URB_HEADER que especifica as informações do cabeçalho URB. Hdr.Function deve ser um dos seguintes:

Hdr.Length deve ser igual sizeof(_URB_CONTROL_DESCRIPTOR_REQUEST)a .

Reserved

Reservado. Não use.

Reserved0

Reservado. Não use.

TransferBufferLength

Especifica o comprimento, em bytes, do buffer especificado em TransferBuffer ou descrito em TransferBufferMDL. O driver do controlador de host retorna o número de bytes enviados ou lidos do pipe neste membro.

TransferBuffer

Ponteiro para um buffer residente para a transferência ou será NULL se um MDL for fornecido em TransferBufferMDL.

TransferBufferMDL

Ponteiro para um MDL que descreve um buffer residente ou é NULL se um buffer for fornecido no TransferBuffer. Esse MDL deve ser alocado do pool nãopagado.

UrbLink

Reservado. Não use.

hca

Reservado. Não use.

Reserved1

Reservado. Não use.

Index

Especifica o índice definido pelo dispositivo do descritor que está sendo recuperado ou definido.

DescriptorType

Indica que tipo de descritor está sendo recuperado ou definido. Um dos seguintes valores deve ser especificado:

constante usbspec.h Valor Versão 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

Especifica a ID do idioma do descritor a ser recuperado quando USB_STRING_DESCRIPTOR_TYPE é definido em DescriptorType. Esse membro deve ser definido como zero para qualquer outro valor em DescriptorType.

Reserved2

Reservado. Não use.

Comentários

Os drivers podem usar a rotina de serviço UsbBuildGetDescriptorRequest para formatar esse URB. Se o chamador passar um buffer muito pequeno para manter todos os dados, o motorista do barramento truncará os dados para caber no buffer sem erros.

Quando o chamador solicita o descritor do dispositivo, o motorista do barramento retorna uma estrutura de dados USB_DEVICE_DESCRIPTOR .

Quando o chamador solicita um descritor de configuração, o driver de barramento retorna o descritor de configuração em uma estrutura USB_CONFIGURATION_DESCRIPTOR , seguido pelos descritores de interface e ponto de extremidade para essa configuração. O driver pode acessar a interface e os descritores de ponto de extremidade como estruturas de USB_INTERFACE_DESCRIPTOR e USB_ENDPOINT_DESCRIPTOR . O driver de barramento também retorna descritores específicos da classe ou específicos do dispositivo. O sistema fornece as rotinas de serviço USBD_ParseConfigurationDescriptorEx e USBD_ParseDescriptors para localizar descritores individuais dentro do buffer.

Quando o chamador solicita um descritor de cadeia de caracteres, o driver de barramento retorna uma estrutura USB_STRING_DESCRIPTOR . A cadeia de caracteres em si é encontrada no membro bString de comprimento variável do descritor de cadeia de caracteres.

Os membros reservados dessa estrutura devem ser tratados como opacos e reservados para uso do sistema.

Requisitos

Requisito Valor
Cabeçalho usb.h (inclua Usb.h)

Confira também

URB

Estruturas USB

USB_CONFIGURATION_DESCRIPTOR

USB_DEVICE_DESCRIPTOR

USB_ENDPOINT_DESCRIPTOR

USB_INTERFACE_DESCRIPTOR

USB_STRING_DESCRIPTOR

_URB_HEADER