estrutura _URB_SELECT_INTERFACE (usb.h)

A estrutura _URB_SELECT_INTERFACE é usada por drivers de cliente USB para selecionar uma configuração alternativa para uma interface ou alterar o tamanho máximo do pacote de um pipe na configuração atual em um dispositivo USB.

Sintaxe

struct _URB_SELECT_INTERFACE {
  struct _URB_HEADER         Hdr;
  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_INTERFACE e Hdr.Length deve ter o tamanho de todo o URB.

ConfigurationHandle

Especifica o identificador para a configuração à qual essa interface pertence. O driver do controlador de host retorna esse identificador quando o cliente seleciona a configuração com uma solicitação URB_FUNCTION_SELECT_CONFIGURATION.

Interface

Uma estrutura de USBD_INTERFACE_INFORMATION de comprimento variável que especifica a interface e a nova configuração alternativa para essa interface e, se necessário, os novos tamanhos máximos de pacote para os pipes correspondentes. Para obter mais informações, consulte Comentários.

Comentários

Você pode usar a macro GET_SELECT_INTERFACE_REQUEST_SIZE para determinar o tamanho do URB_FUNCTION_SELECT_INTERFACE URB e a rotina UsbBuildSelectInterfaceRequest para formatar o URB.

A estrutura USBD_INTERFACE_INFORMATION contém informações sobre a interface e sua configuração alternativa. O membro Pipes de USBD_INTERFACE_INFORMATION aponta para uma matriz de estruturas USBD_PIPE_INFORMATION . A matriz armazena informações sobre os pipes associados aos pontos de extremidade da interface. Você pode substituir determinadas configurações padrão para um pipe, como o tamanho máximo do pacote. Para alterar o tamanho máximo do pacote, defina o sinalizador USBD_PF_CHANGE_MAX_PACKET em Pipes[i].PipeFlagse especifique o novo valor em Pipes[i].MaximumPacketSize.

Depois que o driver de barramento concluir com êxito o processamento do URB_FUNCTION_SELECT_INTERFACE URB, ele retornará uma matriz de identificadores para cada pipe no Pipes[i].PipeHandle membro. O driver cliente pode armazenar identificadores de pipe para enviar solicitações de E/S para pipes específicos.

Requisitos

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

Confira também

Configurando dispositivos USB

URB

Estruturas USB

USBD_INTERFACE_INFORMATION

_URB_HEADER