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 可以傳回下列錯誤碼。
傳回碼 | Description |
---|---|
|
呼叫端在 InterfaceHandle 參數中傳遞 NULL。 |
|
在 PipeInformation 參數中傳遞 NULL 的呼叫端;在 InterfaceHandle 中指定的句柄找不到介面描述項。 |
|
在 PipeIndex 參數中傳遞的值大於介面描述元的 bNumEndpoints 值;找不到指定介面的端點描述項。 |
備註
WinUsb_QueryPipe函式不會擷取控制管道的相關信息。
USB 裝置上的每個介面都可以有多個端點。 為了與這些端點通訊,總線驅動程式會為介面上的每個端點建立管道。 管道索引是以零起始。 因此,針對 n 個端點數目,會從 n-1 設定管道的索引。 WinUsb_QueryPipe 剖析組態描述項,以取得呼叫端指定的介面。 它會搜尋介面描述項,以取得與呼叫端指定管道相關聯的端點描述元。 如果找到端點,函式會以端點描述元的信息填入呼叫端配置的 WINUSB_PIPE_INFORMATION 結構。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | winusb.h (包含 Winusb.h) |
程式庫 | Winusb.lib |
Dll | Winusb.dll |