WinUsb_GetDescriptor関数 (winusb.h)

WinUsb_GetDescriptor関数は、要求された記述子を返します。 これは同期操作です。

構文

BOOL WinUsb_GetDescriptor(
  [in]  WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in]  UCHAR                   DescriptorType,
  [in]  UCHAR                   Index,
  [in]  USHORT                  LanguageID,
  [out] PUCHAR                  Buffer,
  [in]  ULONG                   BufferLength,
  [out] PULONG                  LengthTransferred
);

パラメーター

[in] InterfaceHandle

選択した構成のインターフェイスへの不透明なハンドル。

デバイスまたは構成記述子を取得するには、 WinUsb_Initializeによって返されるハンドルを使用します。

最初のインターフェイスのインターフェイス記述子を取得するには、 WinUsb_Initializeによって返されるハンドルを使用します。

最初のインターフェイスでエンドポイントのエンドポイント記述子を取得するには、 WinUsb_Initializeによって返されるハンドルを使用します。

他のすべてのインターフェイスとその関連エンドポイントの記述子を取得するには、 WinUsb_GetAssociatedInterfaceによって取得されたターゲット インターフェイスへのハンドルを使用します。

[in] DescriptorType

返す記述子の種類を示す 値です。 このパラメーターは、標準デバイス記述子の bDescriptorType フィールドに対応しており、その値は ユニバーサル シリアル バス 仕様で説明されています。 これらの値の一部は、_URB_CONTROL_DESCRIPTOR_REQUEST構造体の DescriptorType メンバーの説明に記載されています。

[in] Index

記述子インデックス。 記述子インデックスの詳細については、 ユニバーサル シリアル バス の仕様 (www.usb.org) を参照してください。

[in] LanguageID

要求された記述子が文字列記述子の場合は、言語識別子を指定する 値。

[out] Buffer

要求された記述子を受け取る呼び出し元によって割り当てられたバッファー。

[in] BufferLength

Buffer の長さ (バイト単位)。

[out] LengthTransferred

Buffer にコピーされたバイト数。

戻り値

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

GetLastError は 、次のエラー コードを返すことができます。

リターン コード 説明
ERROR_INVALID_HANDLE
呼び出し元は InterfaceHandle パラメーターに NULL を渡しました。

注釈

Buffer パラメーターが指す出力バッファーが十分な大きさの場合、WinUsb_GetDescriptorは指定された記述子のコピーを出力バッファーに作成します。 バッファーが記述子データを保持するのに十分な大きさでない場合、データはコピーされません。 記述子は 、WinUsb_Initialize 呼び出し中に作成されるか、デバイスからこの時点で取得される可能性があります。

要件

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

こちらもご覧ください

WinUSB

WinUSB 関数

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST