SetupDiGetDeviceInterfacePropertyW 関数 (setupapi.h)

SetupDiGetDeviceInterfaceProperty 関数は、デバイス インターフェイスに設定されたデバイス プロパティを取得します。

構文

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyW(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]            const DEVPROPKEY          *PropertyKey,
  [out]           DEVPROPTYPE               *PropertyType,
  [out]           PBYTE                     PropertyBuffer,
  [in]            DWORD                     PropertyBufferSize,
  [out, optional] PDWORD                    RequiredSize,
  [in]            DWORD                     Flags
);

パラメーター

[in] DeviceInfoSet

デバイス インターフェイス プロパティを取得するデバイス インターフェイスを含むデバイス 情報セット へのハンドル。

[in] DeviceInterfaceData

デバイス インターフェイス プロパティを取得するデバイス インターフェイスを表す SP_DEVICE_INTERFACE_DATA 構造体へのポインター。

[in] PropertyKey

取得するデバイス インターフェイス プロパティのデバイス インターフェイス プロパティ キーを表す DEVPROPKEY 構造体へのポインター。

[out] PropertyType

要求されたデバイス インターフェイス プロパティのプロパティ データ型識別子を受け取る DEVPROPTYPE 型の変数へのポインター。 プロパティ データ型識別子は、基本データ型識別子と、基本データ型が変更された場合はプロパティ データ型修飾子の間のビットごとの OR です。

[out] PropertyBuffer

要求されたデバイス インターフェイス プロパティを受け取るバッファーへのポインター。 SetupDiGetDeviceInterfaceProperty は、バッファーがすべてのプロパティ値データを保持するのに十分な大きさの場合にのみ、要求されたプロパティを取得します。 ポインターは NULL にすることができます。 ポインターが NULL に設定され、 RequiredSize が指定されている場合、 SetupDiGetDeviceInterfaceProperty は *RequiredSize のプロパティのサイズをバイト単位で返します。

[in] PropertyBufferSize

PropertyBuffer バッファーのサイズ (バイト単位)。 PropertyBufferNULL に設定されている場合は、PropertyBufferSize を 0 に設定する必要があります。

[out, optional] RequiredSize

プロパティが取得された場合はデバイス インターフェイス プロパティのサイズ (バイト単位) を受け取る DWORD 型の変数へのポインター。バッファーが十分な大きさでない場合は、必要なバッファー サイズ。 このポインターは NULL に設定できます。

[in] Flags

このパラメーターは 0 に設定する必要があります。

戻り値

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

次の表に、この関数がログに記録する可能性がある一般的なエラー コードの一部を示します。 その他のエラー コードは、この API によって呼び出されるデバイス インストーラー関数によって設定できます。

リターン コード 説明
ERROR_INVALID_FLAGS
Flags の値が 0 ではありません。
ERROR_INVALID_HANDLE
DevInfoSet で指定されたデバイス情報セットが無効です。
ERROR_INVALID_PARAMETER
指定されたパラメーターが無効です。 1 つの可能性として、 DeviceInterfaceData で指定されたデバイス インターフェイスが無効である可能性があります。
ERROR_INVALID_REG_PROPERTY
PropertyKey によって提供されるプロパティ キーが無効です。
ERROR_INVALID_DATA
指定されていない内部データ値が無効でした。
ERROR_INVALID_USER_BUFFER
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyBufferNULL で、 PropertyBufferSize が 0 ではないということです。
ERROR_NO_SUCH_DEVICE_INTERFACE
DeviceInterfaceData で指定されたデバイス インターフェイスが存在しません。
ERROR_INSUFFICIENT_BUFFER
PropertyBuffer バッファーは、プロパティ値を保持するのに十分な大きさではありません。または、システム呼び出しに渡された内部データ バッファーが小さすぎます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するのに十分なシステム メモリが不足していました。
ERROR_NOT_FOUND
要求されたデバイス プロパティが存在しません。
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。

注釈

SetupDiGetDeviceInterfaceProperty は、 統合デバイス プロパティ モデルの一部です。

SetupAPI では、 SetupDiGetDeviceInterfaceProperty の Unicode バージョンのみがサポートされます。

デバイス インターフェイス プロパティを設定するには、 SetupDiGetDeviceInterfaceProperty の呼び出し元が Administrators グループのメンバーである必要があります。

デバイス インターフェイスに設定されているデバイス プロパティを表すデバイス プロパティ キーを取得するには、 SetupDiGetDeviceInterfacePropertyKeys を呼び出します。

デバイス インターフェイス プロパティを設定するには、 SetupDiSetDeviceInterfaceProperty を呼び出します。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム DesktopFor universal, call CM_Get_Device_Interface_Property
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib

こちらもご覧ください

SetupDiGetDeviceInterfacePropertyKeys

SetupDiSetDeviceInterfaceProperty