Директива 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 может содержать записи для выполнения следующих действий:
Добавьте свойство устройства и инициализируйте значение свойства .
Изменение значения существующего свойства устройства.
Раздел add-property-section, на который ссылается директива AddProperty, имеет следующий формат:
[add-property-section]
(property-name, , , [flags], value]) |
({property-category-guid}, property-pid, type, [flags], value)
...
Раздел add property может содержать любое количество записей property-name или property-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 . По внутренним системным причинам идентификатор свойства должен быть больше или равен двум.
type
Числовое значение в десятичном или шестнадцатеричном формате идентификатора property-data-type для свойства, указанного значением property-category-guid и property-pid . Поддерживаются только следующие базовые типы данных :
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).
flags
Необязательное шестнадцатеричное значение, представляющее побитовое значение ИЛИ следующих флагов, управляющих операцией добавления:
0x00000001 (FLG_ADDPROPERTY_NOCLOBBER)
Флаг, который не позволяет входное значение значения заменить существующее значение свойства. Если модуль записи драйверов хочет, чтобы свойство можно было переопределить с помощью директив Include и Needs , модуль записи должен указать этот флаг для этого свойства. Это связано с тем, что Windows обрабатывает разделы INF, на которые ссылаются директивы Include и Needs , после того, как Windows обрабатывает все остальные директивы в разделе INF, включающее директивы Include и Needs .
0x00000002 (FLG_ADDPROPERTY_OVERWRITEONLY)
Флаг, задающий значение свойства значением входа только в том случае, если указанное свойство уже существует.
0x00000004 (FLG_ADDPROPERTY_APPEND)
Флаг, который добавляет значение входа к значению существующего строкового значения свойства. Этот флаг действителен, только если тип данных свойства DEVPROP_TYPE_STRING_LIST. Предоставленная строка не добавляется к существующему значению строки свойства, если предоставленная строка уже присутствует в существующем строковом значении.
0x00000008 (FLG_ADDPROPERTY_OR)
Флаг, выполняющий побитовое ИЛИ входного значения значения по значению существующего значения свойства. Этот флаг действителен, только если тип данных свойства DEVPROP_TYPE_UINT32.
0x00000010 (FLG_ADDPROPERTY_AND)
Флаг, выполняющий побитовое и значение ввода значения значения для существующего значения свойства. Этот флаг действителен, только если тип данных свойства DEVPROP_TYPE_UINT32.
value
Значение, которое операция добавления использует для изменения значения свойства в зависимости от типа данных свойства и значения записи флагов .
Комментарии
Директива AddProperty может использоваться для изменения системного свойства устройства или пользовательского свойства устройства. Эту директиву можно указать в любом из разделов, показанных в описанной выше формальной инструкции синтаксиса.
Имя каждого раздела add-property-section должно быть уникальным внутри INF-файла, но на раздел можно ссылаться с помощью нескольких директив AddProperty в одном INF-файле. Имя каждого раздела должно соответствовать общим правилам определения имен разделов, описанным в статье Общие правила синтаксиса для ФАЙЛОВ INF.
Дополнительные сведения об использовании директивы INF AddProperty см. в разделах Использование директивы INF AddProperty и ДИРЕКТИВы INF DelProperty.
Примеры
Следующий пример раздела добавления свойств включает две записи строк: первая строка задает свойство DeviceModel по имени, а вторая строка задает пользовательское свойство устройства путем указания GUID ключа настраиваемого свойства свойства.
В первой строке содержится значение ввода имени свойства DeviceModel и значение ввода значения Sample Device Model Name( Имя модели устройства).
Вторая запись строки задает пользовательское свойство в категории настраиваемых свойств. Значение записи property-category-guid — "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e", а значение записи property-identifier — "2".
Необязательное значение записи флагов отсутствует, а значение ввода типа — "18" (DEVPROP_TYPE_STRING). Входное значение значения — "Строковое значение для свойства 1".
[SampleAddPropertySection]
DeviceModel,,,,"Sample Device Model Name"
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 18,, "String value for property 1"