Использование директивы 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 для установки и удаления этих свойств устройства. Не следует использовать директивы AddProperty и DelProperty .

Директивы INF AddProperty и INF DelProperty можно включить в следующие разделы INF-файла, чтобы задать и удалить свойства для экземпляров устройств, классов настройки устройств, классов интерфейсов устройств и интерфейсов устройств:

Использование директивы INF AddProperty

Чтобы изменить значение свойства, включите директиву INF AddProperty в раздел, который устанавливает экземпляр устройства, класс установки устройства, класс интерфейса устройства или интерфейс устройства. Директива AddProperty ссылается на один или несколько разделов add-property,которые содержат записи, указывающие свойство, способ изменения свойства и значение, используемое для изменения свойства. Формат директивы 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 . Например, DeviceModel, представляющий свойство DEVPKEY_DrvPkg_Model , или DeviceVendorWebSite, представляющий свойство DEVPKEY_DrvPkg_VendorWebSite .

property-category-guid
Значение GUID категории свойств, к которой принадлежит свойство. Например, системное свойство DEVPKEY_Device_FriendlyName . Значение GUID также может указывать пользовательскую категорию устройств.

property-pid
Идентификатор свойства, идентифицирующий свойство в категории свойств. Например, значение идентификатора свойства для свойства DEVPKEY_Device_FriendlyName равно 14.

Флаги
Необязательный флаг, указывающий, как изменить значение свойства.

Тип
Идентификатор типа property-data-type, указывающий тип данных.

value
Значение, используемое для изменения значения свойства.

Следующий пример директивы AddProperty включает две записи строк. В первой строке содержится значение ввода имени свойства DeviceModel и значение ввода значения Sample Device Model Name( Имя модели устройства). Эта запись задает свойство DEVPKEY_DrvPkg_Model. Вторая запись строки задает пользовательское свойство в категории настраиваемых свойств. Значение записи property-category-guid — "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e", а значение записи property-identifier — "2". Необязательное значение записи Flags отсутствует, а значение ввода типа — "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 в раздел, который устанавливает экземпляр устройства, класс установки устройства, класс интерфейса устройства или интерфейс устройства.

Main назначение директивы 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 . Например, DeviceModel, представляющий свойство DEVPKEY_DrvPkg_Model , или DeviceVendorWebSite, представляющий свойство DEVPKEY_Device_FriendlyName .

property-category-guid
Значение GUID категории свойств, к которой принадлежит свойство. Например, системное свойство DEVPKEY_Device_FriendlyName . Значение GUID также может указывать пользовательскую категорию устройств.

property-pid
Идентификатор свойства, идентифицирующий свойство в категории свойств. Например, значение идентификатора свойства для свойства DEVPKEY_Device_FriendlyName равно 14.

Флаги
Необязательный флаг, допустимый для использования только со свойством, типом данных которого является DEVPROP_TYPE_STRING_LIST. Если флаг установлен, операция удаления удаляет строку, заданную значением , из списка строк свойств.

value
Строка, удаляемая из списка строк свойств.

Следующий пример раздела del-property-section включает две записи строк.

Первая строка содержит значение входа property-name DeviceModel, которое удаляет свойство DEVPKEY_DrvPkg_Model. Вторая запись строки удаляет строку "DeleteThisString" из значения пользовательского свойства устройства, тип данных которого DEVPROP_TYPE_STRING_LIST. Во второй строке значение записи property-category-GUID — "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e", значение записи property-identifier — "2", а значение записи Flags — "0x00000001".

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