Директива INF UpdateIniFields
Внимание!
Начиная с Windows 11 версии 22H2, пакет драйвера, использующий эту директиву, больше не может быть подписан центром разработчиков оборудования.
Пакеты универсальных драйверов и драйверы Windows не могут использовать эту директиву.
Директива UpdateIniFields ссылается на один или несколько именованных разделов, в которых можно указать детализированные изменения в строках INI-файла.
[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)
UpdateIniFields=update-inifields-section[,update-inifields-section]...
Каждый именованный раздел, на который ссылается директива UpdateIniFields , имеет следующую форму:
[update-inifields-section]
ini-file,ini-section,profile-name[,old-field][,new-field][,flags]
...
Раздел update-inifields-section может содержать любое количество записей, определяемых inf-writer, каждая из которых размещена в отдельной строке.
Записи
ini-file
Указывает имя INI-файла, предоставленного на исходном носителе, и, неявно, имя обновляемого INI-файла на целевом компьютере. Это значение может быть выражено в виде имени файла или маркера %strkey%, определенного в разделе Strings INF-файла.
ini-section
Указывает имя раздела в заданных INI-файлах, содержащего строку для изменения.
profile-name
Указывает имя строки, изменяемой в заданном разделе INI. Чтобы изменить эту строку, необходимо указать по крайней мере одну из записей старого и (или ) нового поля .
старое поле
Указывает существующее поле в заданной строке. Если в этой записи раздела опущено новое поле , это поле удаляется из заданной строки. В противном случае данное значение нового поля должно заменить это поле.
новое поле
Задает замену заданного старого поля или, если старое поле опущено, дополнение к заданной строке.
flags
Указывает (в бите 0) способ интерпретации данного старого- и (или) нового-поля, если одно или обаполя содержат звездочку (*), и/или (в бите 1), какой символ-разделитель следует использовать при добавлении данного нового поля в указанную строку следующим образом:
Бит ноль = 0
Интерпретировать любую звездочку (*) в указанных записях старого и(или) нового поля буквально, а не как символ карта wild-карта при поиске совпадения в заданной строке INI-файла. Это значение по умолчанию.
Бит ноль = 1
Интерпретировать любую звездочку (*) в указанных записях старого и(или) нового поля как символ wild-карта при поиске совпадения в заданной строке INI-файла.
Бит 1 = 0
Используйте пробел в качестве разделителя при добавлении указанной записи нового поля в указанную строку INI-файла . Это значение по умолчанию.
Бит 1 = 1
Используйте запятую (,) в качестве разделителя при добавлении указанной записи нового поля в указанную строку INI-файла .
Комментарии
Директива UpdateIniFields почти никогда не указывается в INF-файлах для установок в Windows, так как нет необходимости иметь INI-файлы на их носителе распространения. Однако директива UpdateIniFields действительна в любом из разделов, показанных в формальной инструкции синтаксиса, а также в разделах, определяемых inf-writer, на которые ссылается директива AddInterface или на которые ссылается раздел InterfaceInstall32 .
Каждое имя раздела update-inifields-section должно быть уникальным для INF-файла. Каждое имя раздела, созданного inf-writer, должно быть уникальным в ПРЕДЕЛАХ INF-файла и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для ФАЙЛОВ INF.
В отличие от раздела, на который ссылается директива UpdateInis , раздел, на который ссылается UpdateIniFields , заменяет, добавляет или удаляет части строки в существующей строке файла INI, а не влияет на все значение конкретной строки. В каждой записи раздела должно быть указано по крайней мере одно из значений старого и (или ) нового поля .
Все комментарии в строке INI-файла удаляются, так как они могут быть неприменимы после внесения изменений в соответствии с этим разделом. При поиске полей в строке ini-файлов пробелы, табуляции и запятые интерпретируются как разделители полей. Однако символ пробела используется в качестве разделителя по умолчанию при добавлении нового поля к строке.
Inf предоставляет полный путь к заданному ini-файлу на носителе распространения одним из следующих способов:
В INF-файлах, предоставленных IHV или OEM, с помощью разделов SourceDisksNames и SourceDisksFiles этого INF явно укажите полный путь к каждому именованному исходному файлу, который не находится в корневом каталоге (или каталогах) на носителе распространения.
В системных INF-файлах, указав один или несколько дополнительных INF-файлов, указанных в записи LayoutFile в разделе Версия INF-файла.