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 |
---|---|
|
El llamador pasó NULL en el parámetro InterfaceHandle . |
|
El llamador pasó NULL en el parámetro PipeInformation ; No se encontró el descriptor de interfaz para el identificador especificado en InterfaceHandle. |
|
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 |