Директива 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 может иметь любое количество записей, определяемых inf-writer, каждой из них в отдельной строке.
Операции
ini-file
Указывает имя INI-файла, предоставленного на исходном носителе, и неявно указывает имя обновляемого INI-файла на целевом компьютере. Это значение может быть выражено как имя файла или как маркер %strkey% , определенный в разделе Strings в INF-файле.
ini-section
Указывает имя раздела в заданных файлах INI, содержащих строку, которую необходимо изменить.
имя профиля
Указывает имя строки, которое необходимо изменить в данном разделе INI. Чтобы изменить эту строку, необходимо указать хотя бы одну из старых записей и (или) нового поля.
старое поле
Указывает существующее поле в заданной строке. Если новое поле опущено из этой записи раздела, это поле удаляется из данной строки. В противном случае заданное значение нового поля должно заменить это поле.
новое поле
Указывает замену заданного старого поля или, если старое поле опущено, дополнение к данной строке.
flags
Указывает (в бите 0), как интерпретировать данное старое-поле и (или) новое- поле, если или оба содержат звездочку (*) и /или (в бите 1), символ разделителя, который следует использовать при добавлении заданного нового поля к заданной строке следующим образом:
Бит нуля = 0
Интерпретирует любую звездочку (*) в указанном старом поле и (или) записи нового поля буквально, а не как символ подстановки, при поиске совпадения в заданной строке INI-файла. Это значение по умолчанию.
Бит нуля = 1
Интерпретирует любую звездочку (*) в указанном старом поле и (или) записи нового поля как символ подстановки при поиске совпадения в заданной строке INI-файла.
Bit one = 0
Используйте пробел в качестве разделителя при добавлении указанной записи нового поля в указанную строку INI-файла. Это значение по умолчанию.
Bit one = 1
Используйте запятую (,) в качестве разделителя при добавлении указанной записи нового поля в указанную строку файла INI.
Замечания
Директива UpdateIniFields почти никогда не указана в INF-файлах для установки в Windows, так как не требуется иметь файлы INI на их носителе дистрибутива. Однако директива UpdateIniFields действительна в любом из разделов, показанных в формальной инструкции синтаксиса, а также в разделах, определенных inf-writer, на которые ссылается директива AddInterface или указанная в разделе InterfaceInstall32.
Каждое имя раздела update-inifields должно быть уникальным для INF-файла. Каждое имя раздела, созданного в INF-записи, должно быть уникальным в INF-файле и должно соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в разделе Общие правила синтаксиса для INF-файлов.
В отличие от раздела, на который ссылается директива UpdateInis , раздел, на который ссылается UpdateIniFields , заменяет, добавляет или удаляет части строки в существующей строке INI вместо того, чтобы влиять на все значение определенной строки. В каждой записи раздела необходимо указать по крайней мере одно из старых значений полей и (или) нового поля.
Все примечания в строке файла INI удаляются, так как они могут не применяться после внесения изменений в соответствии с этим разделом. При поиске полей в строках в файлах INI, пробелах, вкладках и запятых интерпретируются как разделители полей. Однако пробел используется в качестве разделителя по умолчанию при добавлении нового поля к строке.
INF предоставляет полный путь к указанному ini-file на носителе распространения одним из следующих способов:
В IHV/OEM-файлах INF с помощью разделов SourceDisksNames и SourceDisksFiles этого INF явно укажите полный путь к каждому именованному исходному файлу, который не находится в корневом каталоге (или каталогах) на носителе распространения.
В системных INF-файлах, указав один или несколько дополнительных INF-файлов, указанных в записи LayoutFile в разделе "Версия " INF-файла.