SetupDiGetDevicePropertyW 関数 (setupapi.h)

SetupDiGetDeviceProperty 関数は、デバイス インスタンス プロパティを取得します。

構文

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

パラメーター

[in] DeviceInfoSet

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

[in] DeviceInfoData

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

[in] PropertyKey

要求されたデバイス インスタンス プロパティのデバイス プロパティ キーを表す DEVPROPKEY 構造体へのポインター。

[out] PropertyType

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

[out, optional] PropertyBuffer

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

[in] PropertyBufferSize

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

[out, optional] RequiredSize

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

[in] Flags

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

戻り値

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

次の表には、この関数がログに記録する可能性がある一般的なエラー コードの一部が含まれています。

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

注釈

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

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

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

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

要件

要件 値
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム Desktopユニバーサルの場合は、CM_Get_DevNode_Propertyを呼び出します
Header setupapi.h (SetupAPI.h を含む)
Library SetupAPI.lib
[DLL] SetupAPI.dll
API セット ext-ms-win-setupapi-classinstallers-l1-1-0 (Windows 8で導入)

こちらもご覧ください

SetupDiGetDevicePropertyKeys

SetupDiSetDeviceProperty