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 を呼び出すことによって取得できます。
次の表には、この関数がログに記録する可能性がある一般的なエラー コードの一部が含まれています。
リターン コード | 説明 |
---|---|
|
Flags の値は 0 ではありません。 |
|
DevInfoSet で指定されたデバイス情報セットが無効です。 |
|
指定されたパラメーターが無効です。 1 つの可能性は、デバイス情報要素が無効であることです。 |
|
PropertyKey によって提供されるプロパティ キーが無効です。 |
|
指定されていない内部データ値が無効でした。 |
|
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyBuffer が NULL で 、PropertBufferSize が 0 ではないということです。 |
|
DevInfoData で指定されたデバイス インスタンスが存在しません。 |
|
PropertyBuffer バッファーが小さすぎて要求されたプロパティ値を保持できません。または、システム呼び出しに渡された内部データ バッファーが小さすぎます。 |
|
操作を完了するのに十分なシステム メモリが不足していました。 |
|
要求されたデバイス プロパティが存在しません。 |
|
呼び出し元には管理者特権がありません。 |
注釈
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で導入) |