Директива INF DelReg
Внимание!
Если вы создаете универсальный пакет или пакет драйвера Windows, эта директива недопустима. См. статью Использование универсального INF-файла и начало работы с драйверами Windows.
Директива DelReg ссылается на один или несколько разделов, определенных inf-writer, описывающих ключи и (или) записи значений, которые необходимо удалить из реестра.
[DDInstall] |
[DDInstall.CoInstallers] |
[ClassInstall32] |
[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)
DelReg=del-registry-section[,del-registry-section]...
Каждый раздел del-registry, на который ссылается директива DelReg , имеет следующую форму:
[del-registry-section]
reg-root-string,subkey[,value-entry-name][,flags][,value]
reg-root-string,subkey[,value-entry-name][,flags][,value]
...
Раздел del-registry может содержать любое количество записей, каждая из которых размещена в отдельной строке.
Записи
reg-root-string
Определяет корень дерева реестра для других значений, указанных в этой записи. Он может иметь одно из следующих значений:
HKCR
Сокращение HKEY_CLASSES_ROOT.
HKCU
Сокращение для HKEY_CURRENT_USER.
HKLM
Сокращение для HKEY_LOCAL_MACHINE.
HKU
Сокращение для HKEY_USERS.
HKR
Относительный корень, в котором ключи, указанные с помощью этой аббревиатуры, относятся к разделу реестра, связанному с разделом INF, в котором указана эта директива DelReg , как показано в следующей таблице.
Раздел INF, содержащий директиву AddReg | Раздел реестра, на который ссылается HKR |
---|---|
Раздел INF DDInstall | Программный ключ устройства |
Inf DDInstall. Раздел HW | Аппаратный ключ устройства |
Inf DDInstall. Раздел "Службы" | Ключ служб |
Примечание
HKR нельзя использовать в разделе del-registry, на который ссылается раздел DefaultInstall INF.
Дополнительные сведения о драйвере, которые хранятся в корневом каталоге HKEY_LOCAL_MACHINE , см. в разделе Деревья и ключи реестра для устройств и драйверов.
Подраздел
Это необязательное значение, сформированное в виде токена %strkey%, определенного в разделе Strings inf или в виде пути реестра в заданном корневом каталоге реестра (key1\key2\key3...), указывает одно из следующих значений:
Подраздел, удаляемого из реестра в конце заданного пути реестра
Существующий подраздел, из которого необходимо удалить заданное значение-entry-name.
value-entry-name
Это значение определяет запись именованного значения, удаляемую из заданного подраздела. Это значение и предыдущая запятая должны быть опущены, если сам подраздел удаляется из реестра.
флаги (Windows XP и более поздние версии Windows).
Это необязательное шестнадцатеричное значение, выраженное в виде битовой маски ORed, определяемой системой значений низких слов и флагов высоких слов, определяет тип данных для записи значения или управляет операцией удаления реестра. Если флаги не указаны, параметр value-entry-name (если он указан) или подраздел будут удалены.
Ниже приведены значения битовой маски для каждого из этих флагов.
0x00002000 (FLG_DELREG_KEYONLY_COMMON)
Удалите весь подраздел.
0x00004000 (FLG_DELREG_32BITKEY)
Внесите указанные изменения в 32-разрядный реестр. Если этот параметр не указан, изменения вносятся в собственный реестр.
0x00018002 (FLG_DELREG_MULTI_SZ_DELSTRING)
В записи реестра с несколькими строками удалите все строки, соответствующие строковом значению, указанному значением. Регистр не учитывается.
value (Windows XP и более поздние версии Windows).)
Указывает значение реестра, если флаги указывают, что значение реестра является обязательным.
Комментарии
Директиву DelReg можно указать в любом из разделов, показанных в инструкции формального синтаксиса выше. Эту директиву также можно указать в любом из следующих разделов, определенных inf-writer:
Service-install-section или event-log-install section, на который ссылается директива AddService в INF DDInstall. Раздел "Службы".
Раздел интерфейса надстройки, на который ссылается директива AddInterface в INF DDInstall. Раздел "Интерфейсы".
Раздел интерфейса установки, на который ссылается раздел ИНТЕРФЕЙСА INFInstall32.
Как правило, inf никогда не должен пытаться удалить подразделы или записи значений в существующих подразделах, которые были настроены системными компонентами или INF-файлами для других устройств. Цель del-registry-section — очистка устаревших сведений о реестре из предыдущей установки с помощью нового INF-файла, предоставленного тем же поставщиком.
Имя каждого раздела del-registry должно быть уникальным для INF-файла , но на него могут ссылаться директивы DelReg в других разделах того же INF. Имя каждого раздела должно соответствовать общим правилам для определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для ФАЙЛОВ INF.
В версиях операционной системы, предшествующих Windows XP, единственный способ удалить ключ — указать следующее:
reg-root-string, subkey
Для Windows XP и более поздних версий Windows также разрешено следующее (для указания 32-разрядного реестра):
reg-root-string, subkey,,0x4000
Примеры
В этом примере показано, как предоставленный системой установщика класса портов COM/LPT INF удаляет из реестра устаревшие сведения о портах COM, относящиеся к NT.
[ComPort.NT]
AddReg=ComPort.NT.AddReg
... ; more directives omitted here
[ComPort.NT.HW]
DelReg=ComPort.NT.HW.DelReg
[Comport.NT.AddReg]
HKR,,EnumPropPages32,,"MSPorts.dll,SerialPortPropPageProvider"
[ComPort.NT.HW.DelReg]
HKR,,UpperFilters