Compartilhar via


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
ERROR_INVALID_HANDLE
O chamador passou NULL no parâmetro InterfaceHandle .
ERROR_INVALID_PARAMETER
O chamador passou NULL no parâmetro PipeInformation ; Não foi possível encontrar o descritor de interface para o identificador especificado em InterfaceHandle.
ERROR_NO_MORE_ITEMS
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

Confira também

WINUSB_PIPE_INFORMATION

WinUSB

Funções do WinUSB

WinUsb_Initialize