Compartir a través de


función WinUsb_QueryPipe (winusb.h)

La función WinUsb_QueryPipe recupera información sobre el punto de conexión especificado y la canalización asociada para una interfaz.

Sintaxis

BOOL WinUsb_QueryPipe(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AlternateInterfaceNumber,
  [in]  UCHAR                    PipeIndex,
  [out] PWINUSB_PIPE_INFORMATION PipeInformation
);

Parámetros

[in] InterfaceHandle

Identificador opaco de una interfaz que contiene el punto de conexión con el que está asociada la canalización.

Para consultar la canalización asociada a un punto de conexión en la primera interfaz, use el identificador devuelto por WinUsb_Initialize. Para todas las demás interfaces, use el identificador de la interfaz de destino, recuperado por WinUsb_GetAssociatedInterface.

[in] AlternateInterfaceNumber

Valor que especifica la interfaz alternativa para la que se va a devolver la información.

[in] PipeIndex

Valor que especifica la canalización sobre la que se va a devolver información. Este valor no es el mismo que el campo bEndpointAddress en el descriptor del punto de conexión. Un valor PipeIndex de 0 significa el primer punto de conexión asociado a la interfaz, un valor de 1 significa el segundo punto de conexión, etc. PipeIndex debe ser menor que el valor del campo bNumEndpoints del descriptor de interfaz.

[out] PipeInformation

Puntero, en la salida, a una estructura de WINUSB_PIPE_INFORMATION asignada por el autor de la llamada que contiene información de canalización.

Valor devuelto

WinUsb_QueryPipe devuelve TRUE si la operación se realiza correctamente. De lo contrario, esta función devuelve FALSE y el autor de la llamada puede recuperar el error registrado llamando a GetLastError.

GetLastError puede devolver el siguiente código de error.

Código devuelto Descripción
ERROR_INVALID_HANDLE
El llamador pasó NULL en el parámetro InterfaceHandle .
ERROR_INVALID_PARAMETER
El llamador pasó NULL en el parámetro PipeInformation ; No se encontró el descriptor de interfaz para el identificador especificado en InterfaceHandle.
ERROR_NO_MORE_ITEMS
El valor pasado en el parámetro PipeIndex es mayor que el valor bNumEndpoints del descriptor de interfaz; No se encontró el descriptor de punto de conexión para la interfaz especificada.

Comentarios

La función WinUsb_QueryPipe no recupera información sobre la canalización de control.

Cada interfaz del dispositivo USB puede tener varios puntos de conexión. Para comunicarse con cada uno de estos puntos de conexión, el controlador de bus crea canalizaciones para cada punto de conexión de la interfaz. Los índices de canalización se basan en cero. Por lo tanto, para n número de puntos de conexión, los índices de las canalizaciones se establecen a partir de n-1. WinUsb_QueryPipe analiza el descriptor de configuración para obtener la interfaz especificada por el autor de la llamada. Busca en el descriptor de interfaz el descriptor de punto de conexión asociado a la canalización especificada por el autor de la llamada. Si se encuentra el punto de conexión, la función rellena la estructura de WINUSB_PIPE_INFORMATION asignada por el autor de la llamada con información del descriptor del punto de conexión.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado winusb.h (incluya Winusb.h)
Library Winusb.lib
Archivo DLL Winusb.dll

Consulte también

WINUSB_PIPE_INFORMATION

WinUSB

Funciones winUSB

WinUsb_Initialize