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 バッファーのサイズ (バイト単位)。 PropertyBuffer が NULL に設定されている場合は、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 つの可能性は、 PropertyBuffer が NULL で、 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