INF AddProperty 指令

AddProperty 指令引用一个或多个 INF 文件部分,用于修改为设备实例、设备安装类设备接口类或设备接口设置的设备属性

[DDInstall] |
[DDInstall.nt] |
[DDInstall.ntx86] |
[DDInstall.ntia64] |
[DDInstall.ntamd64] |
[DDInstall.ntarm] |
[DDInstall.ntarm64]
[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] | (Windows 10 version 1709 and later versions of Windows)
[interface-install-section] | 
[interface-install-section.nt] | 
[interface-install-section.ntx86] | 
[interface-install-section.ntia64] | (Windows XP and later versions of Windows)
[interface-install-section.ntamd64] | (Windows XP and later versions of Windows) |
[interface-install-section.ntarm] | (Windows 8 and later versions of Windows) |
[interface-install-section.ntarm64] | (Windows 10 version 1709 and later versions of Windows)
[add-interface-section]

AddProperty=add-property-section[,add-property-section]...  (Windows Vista and later versions of Windows)
...

每个 add-property-section 都可以包含用于执行以下操作的条目:

  • 添加设备属性并初始化 属性的值。

  • 修改现有设备属性的值。

AddProperty 指令引用的 add-property-section 具有以下格式:

[add-property-section]
(property-name, , , [flags], value]) | 
({property-category-guid}, property-pid, type, [flags], value)
...

添加属性节可以包含任意数量的 属性名称 条目或 属性 guid 条目,每个条目位于单独的行上。

property-name
以下属性名称之一,表示设备实例 驱动程序包 属性:

  • DeviceModel

  • DeviceVendorWebsite

  • DeviceDetailedDescription

  • DeviceDocumentationLink

  • DeviceIcon

  • DeviceBrandingIcon

有关添加自定义设备图标的详细信息,请参阅 为设备提供图标

property-category-guid
标识属性类别的 GUID 值。 GUID 值可以是系统定义的 GUID,用于标识设备实例、 设备设置类设备接口类或设备接口的属性类别之一。 具有相同 GUID 值的所有属性都是同一类别的成员。 这些属性类别在 Devpkey.h 中定义。

GUID 值也可以是标识自定义属性类别的自定义 GUID 值。

property-pid
属性标识符,指示属性类别中由 property-category-guid 值指示的特定属性。 出于内部系统原因,属性标识符必须大于或等于 2。

type
property-category-guid 值和 property-pid 值指定的属性的 property-data-type 标识符的数值(采用十进制或十六进制格式)。 仅支持以下 基本数据类型

  • DEVPROP_TYPE_STRING

  • DEVPROP_TYPE_STRING_LIST

  • DEVPROP_TYPE_BINARY

  • DEVPROP_TYPE_BOOLEAN

  • DEVPROP_TYPE_UINT32

例如,DEVPROP_TYPE_STRING数据类型的十进制值为 18 (0x00000012) ,DEVPROP_TYPE_STRING_LIST数据类型的十进制值为 8210 (0x00002012) 。

flag
可选的十六进制值,它是控制添加操作的以下标志的按位 OR:

0x00000001 (FLG_ADDPROPERTY_NOCLOBBER)
一个标志,用于阻止值输入值替换现有属性值。 如果驱动程序编写器希望使属性能够通过 IncludeNeeds 指令重写,则编写器必须为该属性指定此标志。 这是因为 Windows 在 Windows 处理包含 IncludeNeeds 指令的 INF 节中的所有其他指令之后,处理由 IncludeNeeds 指令引用的 INF 部分。

0x00000002 (FLG_ADDPROPERTY_OVERWRITEONLY)
仅当指定的属性已存在时才将属性值设置为值条目值的标志。

0x00000004 (FLG_ADDPROPERTY_APPEND)
将值输入值追加到现有属性字符串值的标志。 仅当属性数据类型DEVPROP_TYPE_STRING_LIST时,此标志才有效。 如果所提供的字符串已存在于现有字符串值中,则提供的字符串不会追加到现有属性字符串值。

0x00000008 (FLG_ADDPROPERTY_OR)
一个标志,该标志对现有属性值的值输入值执行按位 OR。 仅当属性数据类型DEVPROP_TYPE_UINT32时,此标志才有效。

0x00000010 (FLG_ADDPROPERTY_AND)
一个标志,该标志对现有属性值的值条目值执行按位 AND。 仅当属性数据类型DEVPROP_TYPE_UINT32时,此标志才有效。

value
添加操作用于修改属性值的值,具体取决于属性数据类型和 标志 条目的值。

注解

AddProperty 指令可用于修改系统定义的设备属性或自定义设备属性。 可以在上述正式语法语句中显示的任何部分下指定此指令。

每个 add-property-section 名称在 INF 文件中必须是唯一的,但该节可由同一 INF 文件中的多个 AddProperty 指令引用。 每个节名称必须遵循用于定义 INF 文件的一般语法规则中所述的节名称的一般规则

有关如何使用 INF AddProperty 指令的详细信息,请参阅 使用 INF AddProperty 指令和 INF DelProperty 指令

示例

添加属性节的以下示例包含两个行条目:第一个行条目按名称设置 DeviceModel 属性,第二行条目通过指定自定义属性键 GUID 来设置自定义设备属性。

第一行包括 属性名称 条目值“DeviceModel”和 条目值“示例设备模型名称”。

第二行条目设置自定义属性类别中的自定义属性。 property-category-guid 条目值为“c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”,属性标识符条目值为“2”。

不存在可选的 标志 条目值,并且类型条目值为“18” (DEVPROP_TYPE_STRING) 。 值输入值为“属性 1 的字符串值”。

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

另请参阅

DelProperty