INF AddProperty ディレクティブと INF DelProperty ディレクティブの使用

Windows Vista 以降のバージョンの Windows では、INF AddProperty ディレクティブINF DelProperty ディレクティブを使用して、デバイス インスタンス、デバイス セットアップ クラスデバイス インターフェイス クラス、およびデバイス インターフェイスのプロパティを設定および削除できます。 これには、システム定義のデバイス プロパティカスタム デバイス プロパティが含まれます。 ただし、INF AddReg ディレクティブINF DelReg ディレクティブの代わりに AddProperty ディレクティブと DelProperty ディレクティブを使用してデバイスのプロパティを設定および削除する場合は、次のガイドラインを使用する必要があります。

  • Windows Vista 以降のバージョンの Windows で導入されたデバイス プロパティの場合は、AddProperty ディレクティブと DelProperty ディレクティブを使用して、デバイスのプロパティを設定および削除する必要があります。

  • Windows Server 2003、Windows XP、Windows 2000 で導入され、AddReg ディレクティブで設定でき、DelReg ディレクティブによって削除できるデバイス プロパティについては、AddReg ディレクティブと DelReg ディレクティブを引き続き使用して、これらのデバイス プロパティを設定および削除する必要があります。 AddProperty ディレクティブと DelProperty ディレクティブは使用しないでください。

INF AddProperty ディレクティブと INF DelProperty ディレクティブを次の INF ファイル セクションに含めて、デバイス インスタンス、デバイス セットアップ クラス、デバイス インターフェイス クラス、デバイス インターフェイスのプロパティを設定および削除できます。

INF AddProperty ディレクティブの使用

プロパティ値を変更するには、デバイス インスタンス、デバイス セットアップ クラス、デバイス インターフェイス クラス、またはデバイス インターフェイスをインストールする INF AddProperty ディレクティブをセクションに含めます。 AddProperty ディレクティブは、プロパティを指定するエントリ、プロパティの変更方法、およびプロパティの変更に使用される値を含む 1 つ以上の add-property-section を参照します。 AddProperty ディレクティブの形式は次のとおりです。

AddProperty=add-property-section[,add-property-section] ...

add-property-section の各行は、1 つのプロパティを指定します。 プロパティ情報を指定する 2 つの可能な行形式を次に示します。 表示される最初の行形式は、プロパティを名前で指定します。 この形式は、DEVPKEY_DrvPkg_Xxx プロパティでのみ使用できます。 2 つめの行形式では、対応するプロパティ キーのプロパティ カテゴリとプロパティ識別子によってプロパティを指定します。 この 2 つめの形式を使用して、システム定義プロパティまたはカスタム デバイス プロパティを指定できます。

[add-property-section]property-name,,,[flags],value{property-category-guid},property-pid,type,[flags],value エントリ値は次の情報を指定します。

property-name
DEVPKEY_DrvPkg_Xxx プロパティを識別する名前。 たとえば、DEVPKEY_DrvPkg_Model プロパティを表す DeviceModel や、DEVPKEY_DrvPkg_VendorWebSite プロパティを表す DeviceVendorWebSite などです。

property-category-guid
プロパティが属するプロパティ カテゴリの GUID 値。 たとえば、システム定義の DEVPKEY_Device_FriendlyName プロパティなどです。 GUID 値では、カスタム デバイス カテゴリも指定できます。

property-pid
プロパティ カテゴリ内のプロパティを識別するプロパティ識別子。 たとえば、DEVPKEY_Device_FriendlyName プロパティのプロパティ識別子の値は 14 です。

フラグ
プロパティ値を変更する方法を示す省略可能なフラグ。

Type
データ型を指定するプロパティ データ型識別子

value
プロパティ値の変更に使用される値。

次の例では、AddProperty ディレクティブに 2 つの行エントリが含まれています。 最初の行には、property-name のエントリ値 "DeviceModel" とのエントリ値 "Sample Device Model Name" が含まれます。このエントリは、DEVPKEY_DrvPkg_Model プロパティを設定します。 2 行目は、カスタム プロパティ カテゴリのカスタム プロパティを設定します。 property-category-guid エントリ値は "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e" で、プロパティ識別子のエントリ値は "2" です。省略可能な Flags エントリ値が存在せず、エントリの値は "18" (DEVPROP_TYPE_STRING) です。 のエントリ値は "String value for property 1" です。

[Root_Install.NT]
AddProperty=Root_AddProperty

[Root_AddProperty]
DeviceModel,,,,"Sample Device Model Name"
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 18,, "String value for property 1"

INF DelProperty ディレクティブの使用

プロパティ値を削除するには、デバイス インスタンス、デバイス セットアップ クラス、デバイス インターフェイス クラス、またはデバイス インターフェイスをインストールする INF DelProperty ディレクティブをセクションに含めます。

INF DelProperty ディレクティブの主要な目的は、デバイスのインストールを更新する INF ファイルで使用することです。 このような場合は、DelProperty ディレクティブを使用して、以前のインストールで設定されたプロパティを削除できますが、更新されたインストールでは不要になりました。 DelProperty ディレクティブの使用には注意が必要です。 DelProperty は、システム コンポーネントまたは別の INF ファイルによっても設定される可能性があるプロパティを削除するために使用しないでください。

DelProperty ディレクティブの形式は次のとおりです。

DelProperty=del-property-section[,del-property-section] ...

del-property-section の各行は、1 つのプロパティを指定します。 プロパティ情報を指定する 2 つの可能な行形式を次に示します。 表示される最初の行形式は、プロパティを名前で指定します。 この形式は、DEVPKEY_DrvPkg_Xxx プロパティでのみ使用できます。 2 つめの行形式では、対応するプロパティ キーのプロパティ カテゴリとプロパティ識別子によってプロパティを指定します。 この 2 つめの形式を使用して、システム定義プロパティまたはカスタム デバイス プロパティを指定できます。

[del-property-section]property-name [,,Flags [,value]] {property-category-guid},property-pid [,Flags [,value]] これらのエントリ値は次の情報を指定します。

property-name
DEVPKEY_DrvPkg_Xxx プロパティを識別する名前。 たとえば、DEVPKEY_DrvPkg_Model プロパティを表す DeviceModel や、DEVPKEY_Device_FriendlyName プロパティを表す DeviceVendorWebSite などです。

property-category-guid
プロパティが属するプロパティ カテゴリの GUID 値。 たとえば、システム定義の DEVPKEY_Device_FriendlyName プロパティなどです。 GUID 値では、カスタム デバイス カテゴリも指定できます。

property-pid
プロパティ カテゴリ内のプロパティを識別するプロパティ識別子。 たとえば、DEVPKEY_Device_FriendlyName プロパティのプロパティ識別子の値は 14 です。

フラグ
データ型が DEVPROP_TYPE_STRING_LIST であるプロパティでのみ使用できる省略可能なフラグ。 フラグが設定されている場合、削除操作は、プロパティ文字列リストからで指定された文字列を削除します。

value
プロパティ文字列リストから削除する文字列。

次の例では、del-property-section に 2 つの行エントリが含まれています。

最初の行には、 DEVPKEY_DrvPkg_Model プロパティを削除するプロパティ名 のエントリ値 "DeviceModel" が含まれます。 2 行目のエントリは、データ型が DEVPROP_TYPE_STRING_LIST であるカスタム デバイス プロパティ値から文字列 "DeleteThisString" を削除します。 2 行目の property-category-guid のエントリ値は "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e" で、 property-identifier のエントリ値は "2"、 Flags エントリ値は "0x00000001" です。

[SampleDelPropertySection]
DeviceModel
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 0x00000001, "DeleteThisString"