estrutura _URB_SELECT_CONFIGURATION (usb.h)
A estrutura _URB_SELECT_CONFIGURATION é usada por drivers cliente para selecionar uma configuração para um dispositivo USB.
Sintaxe
struct _URB_SELECT_CONFIGURATION {
struct _URB_HEADER Hdr;
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
USBD_INTERFACE_INFORMATION Interface;
};
Membros
Hdr
Ponteiro para uma estrutura de _URB_HEADER que especifica as informações do cabeçalho URB. hdr.function deve ser URB_FUNCTION_SELECT_CONFIGURATION e hdr.length deve ser do tamanho de toda a URB. Os drivers podem usar a macro GET_SELECT_CONFIGURATION_REQUEST_SIZE definida em usbdlib.h para obter o tamanho da URB.
ConfigurationDescriptor
Ponteiro para um descritor de configuração USB inicializado que identifica a configuração a ser usada no dispositivo. Se esse membro estiver NULL, o dispositivo será definido como um estado não configurado.
ConfigurationHandle
Contém um identificador usado para acessar essa configuração no retorno do driver do controlador de host. Os drivers de cliente USB devem tratar esse membro como opaco.
Interface
Especifica uma matriz de comprimento variável de estruturas de USBD_INTERFACE_INFORMATION, cada uma descrevendo uma interface compatível com a configuração que está sendo selecionada.
Antes que a solicitação seja enviada ao driver do controlador de host, o driver pode selecionar uma configuração alternativa para uma ou mais das interfaces contidas nessa matriz definindo membros da estrutura USBD_INTERFACE_INFORMATION para essa interface.
Ao retornar do driver do controlador de host, esse membro contém uma estrutura USBD_INTERFACE_INFORMATION com dados que descrevem os recursos e o formato dos pontos de extremidade dentro dessa interface.
Observações
Um URB_FUNCTION_SELECT_CONFIGURATION URB consiste em uma estrutura _URB_SELECT_CONFIGURATION seguida por uma sequência de matriz de comprimento variável de estruturas USBD_INTERFACE_INFORMATION, cada elemento na matriz para cada número de interface exclusivo na configuração. Os drivers cliente devem alocar memória suficiente para conter uma estrutura USBD_PIPE_INFORMATION para cada ponto de extremidade nas interfaces selecionadas.
Os drivers podem usar a rotina de serviço USBD_CreateConfigurationRequestEx para alocar a URB.
Outros membros que fazem parte dessa estrutura, mas não descritos aqui, devem ser tratados como opacos e considerados reservados para uso do sistema.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | usb.h (incluir Usb.h) |