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 可能会返回以下错误代码。
返回代码 | 说明 |
---|---|
|
调用 方在InterfaceHandle 参数中传递 NULL。 |
|
调用方在 PipeInformation 参数中传递 NULL;找不到 InterfaceHandle 中指定的句柄的接口描述符。 |
|
PipeIndex 参数中传递的值大于接口描述符的 bNumEndpoints 值;找不到指定接口的终结点描述符。 |
注解
WinUsb_QueryPipe 函数不会检索有关控制管道的信息。
USB 设备上的每个接口可以有多个终结点。 为了与其中每个终结点通信,总线驱动程序会为接口上的每个终结点创建管道。 管道索引从零开始。 因此,对于 n 个终结点,管道的索引是从 n-1 设置的。 WinUsb_QueryPipe 分析配置描述符以获取调用方指定的接口。 它会在接口描述符中搜索与调用方指定的管道关联的终结点描述符。 如果找到终结点,该函数将使用终结点描述符中的信息填充调用方分配 的WINUSB_PIPE_INFORMATION 结构。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | winusb.h (包括 Winusb.h) |
Library | Winusb.lib |
DLL | Winusb.dll |