使用 INF AddProperty 指令和 INF DelProperty 指令

在 Windows Vista 和更高版本的 Windows 中,可以使用 INF AddProperty 指令 INF DelProperty 指令来设置和删除设备实例、设备设置类设备接口类和设备接口的属性。 这包括 系统定义的设备属性自定义设备属性。 但是,使用 AddProperty 和 DelProperty 指令而不是 INF AddReg 指令和 INF DelReg 指令设置和删除设备属性时,应使用以下准则:

  • 对于在 Windows Vista 和更高版本的 Windows 上引入的设备属性,应使用 AddProperty 和 DelProperty 指令来设置和删除设备属性。

  • 对于在 Windows Server 2003、Windows XP 或 Windows 2000 上引入的设备属性,并且可以由 AddReg 指令设置并删除 DelReg 指令,应继续使用 AddReg 和 DelReg 指令来设置和删除这些设备属性。 不应使用 AddPropertyDelProperty 指令。

可以在以下 INF 文件部分中包括 INF AddProperty 指令和 INF DelProperty 指令,以设置和删除设备实例、设备设置类、设备接口类和设备接口的属性:

使用 INF AddProperty 指令

若要修改属性值,请在安装设备实例、设备安装类、设备接口类或设备接口的部分中包括 INF AddProperty 指令。 AddProperty 指令引用一个或多个 add-property-sections,其中包括指定属性的条目、如何修改属性以及用于修改属性的值。 AddProperty 指令的格式如下所示:

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

add-property-section 中的每个行指定一个属性。 下面显示了指定属性信息的两种可能行格式。 显示的第一行格式按其名称指定属性。 此格式只能与 DEVPKEY_DrvPkg_Xxx 属性一起使用。 第二行格式按相应 属性键的属性类别和属性标识符指定属性。 第二种格式可用于指定系统定义属性或 自定义设备属性

[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。

标记
指示如何修改属性值的可选标志。

类型
一个 指定数据类型的属性数据类型标识符

value
用于修改属性值的值。

AddProperty 指令的以下示例包含两个行条目。 第一行包括 属性名称 条目值“DeviceModel”和 条目值“示例设备模型名称”。此项设置DEVPKEY_DrvPkg_Model属性。 第二行条目在自定义属性类别中设置自定义属性。 property-category-guid 条目值为“c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”,属性标识符条目值为“2”。可选标志项值不存在,类型条目值为“18”(DEVPROP_TYPE_STRING)。 条目值为“属性 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 中的每个行指定一个属性。 下面显示了指定属性信息的两种可能行格式。 显示的第一行格式按其名称指定属性。 此格式只能与 DEVPKEY_DrvPkg_Xxx 属性一起使用。 第二行格式按相应 属性键的属性类别和属性标识符指定属性。 第二种格式可用于指定系统定义属性或 自定义设备属性

[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以下示例包含两个行条目。

第一行包括 属性名称 条目值“DeviceModel”,用于删除DEVPKEY_DrvPkg_Model属性。 第二行条目从数据类型DEVPROP_TYPE_STRING_LIST的自定义设备属性值中删除字符串“DeleteThisString”。 第二行中 ,property-category-guid 条目值为“c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”, 属性标识符 条目值为“2”, Flags 条目值为“0x00000001”。

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