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 は 2 番目のエンドポイントを示します。 PipeIndex は、インターフェイス記述子の bNumEndpoints フィールドの値より小さくする必要があります。
[out] PipeInformation
出力時に、パイプ情報を含む呼び出し元によって割り当てられた WINUSB_PIPE_INFORMATION 構造体へのポインター。
戻り値
操作が 成功した場合、WinUsb_QueryPipe は TRUE を 返します。 それ以外の場合、この関数は FALSE を返し、呼び出し元は GetLastError を呼び出すことによってログに記録されたエラーを取得できます。
GetLastError は 、次のエラー コードを返すことができます。
リターン コード | 説明 |
---|---|
|
呼び出し元は InterfaceHandle パラメーターに NULL を渡しました。 |
|
呼び出し元が PipeInformation パラメーターに NULL を渡しました。InterfaceHandle で指定されたハンドルに対してインターフェイス記述子が見つかりませんでした。 |
|
PipeIndex パラメーターで渡される値が、インターフェイス記述子の bNumEndpoints 値より大きい。指定されたインターフェイスのエンドポイント記述子が見つかりませんでした。 |
注釈
WinUsb_QueryPipe関数は、コントロール パイプに関する情報を取得しません。
USB デバイス上の各インターフェイスには、複数のエンドポイントを含めることができます。 これらの各エンドポイントと通信するために、バス ドライバーはインターフェイス上の各エンドポイントのパイプを作成します。 パイプ インデックスは 0 から始まります。 したがって 、n 個のエンドポイントの場合、パイプのインデックスは n-1 から設定されます。 WinUsb_QueryPipe は、構成記述子を解析して、呼び出し元によって指定されたインターフェイスを取得します。 呼び出し元が指定したパイプに関連付けられているエンドポイント記述子をインターフェイス記述子で検索します。 エンドポイントが見つかった場合、関数は、呼び出し元によって割り当てられた WINUSB_PIPE_INFORMATION 構造体にエンドポイント記述子からの情報を設定します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | winusb.h (Winusb.h を含む) |
Library | Winusb.lib |
[DLL] | Winusb.dll |