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].PipeFlags
e 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) |