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