WinUsb_QueryPipe 函数 (winusb.h)

WinUsb_QueryPipe函数检索有关接口的指定终结点和关联管道的信息。

语法

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

参数

[in] InterfaceHandle

接口的不透明句柄,该接口包含与管道关联的终结点。

若要查询与第一个接口中的终结点关联的管道,请使用 WinUsb_Initialize 返回的句柄。 对于所有其他接口,请使用WinUsb_GetAssociatedInterface检索的目标接口的句柄。

[in] AlternateInterfaceNumber

一个 值,该值指定要为其返回信息的备用接口。

[in] PipeIndex

一个 值,该值指定要返回相关信息的管道。 此值与终结点描述符中的 bEndpointAddress 字段不同。 PipeIndex 值为 0 表示与接口关联的第一个终结点,值为 1 表示第二个终结点,依此。 PipeIndex 必须小于接口描述符的 bNumEndpoints 字段中的值。

[out] PipeInformation

在输出上指向调用方分配 的WINUSB_PIPE_INFORMATION 结构的指针,该结构包含管道信息。

返回值

如果操作成功,WinUsb_QueryPipe返回 TRUE。 否则,此函数返回 FALSE,调用方可以通过调用 GetLastError 检索记录的错误。

GetLastError 可能会返回以下错误代码。

返回代码 说明
ERROR_INVALID_HANDLE
调用 方在InterfaceHandle 参数中传递 NULL。
ERROR_INVALID_PARAMETER
调用方在 PipeInformation 参数中传递 NULL;找不到 InterfaceHandle 中指定的句柄的接口描述符。
ERROR_NO_MORE_ITEMS
PipeIndex 参数中传递的值大于接口描述符的 bNumEndpoints 值;找不到指定接口的终结点描述符。

注解

WinUsb_QueryPipe 函数不会检索有关控制管道的信息。

USB 设备上的每个接口可以有多个终结点。 为了与其中每个终结点通信,总线驱动程序会为接口上的每个终结点创建管道。 管道索引从零开始。 因此,对于 n 个终结点,管道的索引是从 n-1 设置的。 WinUsb_QueryPipe 分析配置描述符以获取调用方指定的接口。 它会在接口描述符中搜索与调用方指定的管道关联的终结点描述符。 如果找到终结点,该函数将使用终结点描述符中的信息填充调用方分配 的WINUSB_PIPE_INFORMATION 结构。

要求

要求
目标平台 通用
标头 winusb.h (包括 Winusb.h)
Library Winusb.lib
DLL Winusb.dll

另请参阅

WINUSB_PIPE_INFORMATION

WinUSB

WinUSB 函数

WinUsb_Initialize