Поделиться через


Использование директивы 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-section, включающих записи, определяющие свойство, изменение свойства и значение, используемое для изменения свойства. Формат директивы 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.

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

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

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

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

Основная цель директивы 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.

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

значение
Строка для удаления из списка строк свойств.

В следующем примере раздела del-property-section содержатся две строки.

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

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