WinUsb_GetAssociatedInterface関数 (winusb.h)

WinUsb_GetAssociatedInterface関数は、関連付けられたインターフェイスのハンドルを取得します。 これは同期操作です。

構文

BOOL WinUsb_GetAssociatedInterface(
  [in]  WINUSB_INTERFACE_HANDLE  InterfaceHandle,
  [in]  UCHAR                    AssociatedInterfaceIndex,
  [out] PWINUSB_INTERFACE_HANDLE AssociatedInterfaceHandle
);

パラメーター

[in] InterfaceHandle

WinUsb_Initialize によって返される、デバイス上の最初の (既定の) インターフェイスへの不透明なハンドル。

[in] AssociatedInterfaceIndex

取得する関連付けられたインターフェイスを指定するインデックス。 値 0 は最初に関連付けられたインターフェイスを示し、値 1 は 2 つ目の関連付けられたインターフェイスを示します。

[out] AssociatedInterfaceHandle

関連付けられているインターフェイスのハンドル。 呼び出し元は、このインターフェイス ハンドルを、Winusb.dll によって公開される WinUSB 関数 に渡す必要があります。 このハンドルを閉じるには、 WinUsb_Freeを呼び出します。

戻り値

操作が 成功した場合、WinUsb_GetAssociatedInterfaceは TRUE を 返します。 それ以外の場合、このルーチンは FALSE を返し、呼び出し元は GetLastError を呼び出すことによってログに記録されたエラーを取得できます。

リターン コード 説明
ERROR_ALREADY_EXISTS

WinUsb_GetAssociatedInterface は、 AssociatedInterfaceIndex が指定するインターフェイスのハンドルを既に返しています。

ERROR_INVALID_HANDLE
呼び出し元が InterfaceHandle パラメーターに NULL を渡しました。
ERROR_INVALID_PARAMETER
渡された AssociatedInterfaceIndex 値が整数オーバーフロー チェックに失敗しました。
ERROR_NO_MORE_ITEMS
指定した AssociatedInterfaceIndex 値のインターフェイスが存在しません
ERROR_NOT_ENOUGH_MEMORY
操作を実行するのに十分なメモリがないことを示します。

注釈

WinUsb_GetAssociatedInterface ルーチンは、不透明なハンドルを取得します。

最初に関連付けられたインターフェイスは、WinUsb_Initialize ルーチンが取得するハンドルを持つインターフェイスの直後にあるインターフェイスです。

WinUsb_GetAssociatedInterfaceが返すハンドルは、WinUsb_Freeを呼び出して解放する必要があります。

WinUsb_GetAssociatedInterfaceの呼び出し元は、インターフェイスごとに 1 つのハンドルのみを取得できます。 呼び出し元が同じインターフェイスに対して複数のハンドルを取得しようとすると、ルーチンは ERROR_ALREADY_EXISTS のエラーで失敗します。

要件

要件
対象プラットフォーム ユニバーサル
Header winusb.h (Winusb.h を含む)
Library Winusb.lib
[DLL] Winusb.dll

こちらもご覧ください

WinUSB

WinUSB 関数

WinUsb_Initialize