SetupDiSetDevicePropertyW 関数 (setupapi.h)

SetupDiSetDeviceProperty 関数は、デバイス インスタンス プロパティを設定します。

構文

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

パラメーター

[in] DeviceInfoSet

デバイス情報セットへのハンドル。 このデバイス情報セットには、デバイス インスタンス プロパティを設定するデバイス インスタンスを表すデバイス情報要素が含まれています。

[in] DeviceInfoData

デバイス インスタンス プロパティを設定するデバイス インスタンスを識別する SP_DEVINFO_DATA 構造体へのポインター。

[in] PropertyKey

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

[in] PropertyType

デバイス インスタンス プロパティの property-data-type 識別子を表す DEVPROPTYPE 型の値。 詳細については、このトピックで後述する 「解説 」セクションを参照してください。

[in, optional] PropertyBuffer

デバイス インスタンスのプロパティ値を含むバッファーへのポインター。 プロパティが削除されている場合、または NULL 値に設定されている場合、このポインターは NULLPropertyBufferSize は 0 に設定する必要があります。

[in] PropertyBufferSize

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

[in] Flags

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

戻り値

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

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

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

解説

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

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

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

SetupDiSetDeviceProperty は、property-data-type 識別子とプロパティ値に要件を適用します。

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

デバイス インスタンス プロパティを取得するには、 SetupDiGetDeviceProperty を呼び出します。

要件

   
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム Desktopユニバーサルの場合は、CM_Set_DevNode_Propertyを呼び出します
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib

関連項目

SetupDiGetDeviceProperty

SetupDiGetDevicePropertyKeys