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
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 結構。

規格需求

需求
目標平台 Universal
標頭 winusb.h (包含 Winusb.h)
程式庫 Winusb.lib
Dll Winusb.dll

另請參閱

WINUSB_PIPE_INFORMATION

WinUSB

WinUSB 函式

WinUsb_Initialize