função WinUsb_QueryPipe (winusb.h)
A função WinUsb_QueryPipe recupera informações sobre o ponto de extremidade especificado e o pipe associado para uma interface.
Sintaxe
BOOL WinUsb_QueryPipe(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] UCHAR AlternateInterfaceNumber,
[in] UCHAR PipeIndex,
[out] PWINUSB_PIPE_INFORMATION PipeInformation
);
Parâmetros
[in] InterfaceHandle
Um identificador opaco para uma interface que contém o ponto de extremidade ao qual o pipe está associado.
Para consultar o pipe associado a um ponto de extremidade na primeira interface, use o identificador retornado por WinUsb_Initialize. Para todas as outras interfaces, use o identificador para a interface de destino, recuperada por WinUsb_GetAssociatedInterface.
[in] AlternateInterfaceNumber
Um valor que especifica a interface alternativa para a qual retornar as informações.
[in] PipeIndex
Um valor que especifica o pipe sobre o qual retornar informações. Esse valor não é o mesmo que o campo bEndpointAddress no descritor de ponto de extremidade. Um valor PipeIndex de 0 significa o primeiro ponto de extremidade associado à interface, um valor de 1 significa o segundo ponto de extremidade e assim por diante. PipeIndex deve ser menor que o valor no campo bNumEndpoints do descritor de interface.
[out] PipeInformation
Um ponteiro, na saída, para uma estrutura de WINUSB_PIPE_INFORMATION alocada pelo chamador que contém informações de pipe.
Retornar valor
WinUsb_QueryPiperetornará TRUE se a operação for bem-sucedida. Caso contrário, essa função retornará FALSE e o chamador poderá recuperar o erro registrado chamando GetLastError.
GetLastError pode retornar o código de erro a seguir.
Código de retorno | Descrição |
---|---|
|
O chamador passou NULL no parâmetro InterfaceHandle . |
|
O chamador passou NULL no parâmetro PipeInformation ; Não foi possível encontrar o descritor de interface para o identificador especificado em InterfaceHandle. |
|
O valor passado no parâmetro PipeIndex é maior que o valor bNumEndpoints do descritor de interface; Não foi possível encontrar o descritor de ponto de extremidade para a interface especificada. |
Comentários
A função WinUsb_QueryPipe não recupera informações sobre o pipe de controle.
Cada interface no dispositivo USB pode ter vários pontos de extremidade. Para se comunicar com cada um desses pontos de extremidade, o driver de barramento cria pipes para cada ponto de extremidade na interface. Os índices de pipe são baseados em zero. Portanto, para n número de pontos de extremidade, os índices dos pipes são definidos a partir de n-1. WinUsb_QueryPipe analisa o descritor de configuração para obter a interface especificada pelo chamador. Ele pesquisa o descritor de interface para o descritor de ponto de extremidade associado ao pipe especificado pelo chamador. Se o ponto de extremidade for encontrado, a função preencherá a estrutura de WINUSB_PIPE_INFORMATION alocada pelo chamador com informações do descritor de ponto de extremidade.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Universal |
Cabeçalho | winusb.h (inclua Winusb.h) |
Biblioteca | Winusb.lib |
DLL | Winusb.dll |