Использование универсального INF-файла
В некоторых выпусках Windows используется только подмножество методов установки драйверов, доступных в Windows 10 Desktop. INF-файл для версий Windows, не являющихся классическими, должен выполнять только аддитивные операции, которые полностью описаны в INF-файле. INF-файл с таким ограниченным синтаксисом называется универсальным INF-файлом.
Универсальный INF-файл устанавливается предсказуемо с одинаковым результатом каждый раз. Результаты установки не зависят от выполнения компонентов за пределами системы, предоставляемых компонентами установки устройства. Например, ссылки совместного установщика недопустимы в универсальном INF-файле, так как необходимость выполнения кода в дополнительной библиотеке DLL при установке означает, что система не может определить результат установки только из INF-файла.
Чтобы проверить, является ли INF универсальным, используйте .infverif /u
Драйвер Windows должен пройти infverif /w
тесты/u
, а также изоляцию пакетов драйверов.
Список параметров InfVerif см. в разделе Запуск InfVerif из командной строки.
Если вы создаете пакет драйвера для настольных компьютеров Windows, вам не нужно использовать универсальный INF-файл, но это рекомендуется из-за преимуществ производительности.
Какие разделы INF недопустимы в универсальном INF-файле?
В универсальном INF-файле можно использовать любой системный раздел INF, за исключением следующих:
- INF ClassInstall32 Section
- Раздел INF DDInstall.CoInstallers
- Раздел INF DDInstall.FactDef
- INF DDInstall.LogConfigOverride Section
Раздел производителя INF действителен до тех пор, пока в оформлении TargetOSVersion нет флага ProductType или флага SuiteMask.
Раздел INF DefaultInstall действителен только в том случае, если он имеет оформление архитектуры, например [DefaultInstall.NTAMD64]
.
Какие директивы INF недопустимы в универсальном INF-файле?
В универсальном INF-файле можно использовать любую системную директиву INF, за исключением следующего:
- Директива INF BitReg
- Директива INF DelFiles
- Директива INF DelProperty
- Директива INF DelReg
- Директива INF DelService
- Директива INF Ini2Reg
- Директива INF LogConfig
- Директива INF ProfileItems
- Директива INF RegisterDlls
- Директива INF RenFiles
- Директива INF UnregisterDlls
- Директива INF UpdateIniFields
- Директива INF UpdateInis
Следующие директивы допустимы с некоторыми оговорками:
Директива INF AddReg является допустимой, если записи в указанном разделе add-registry-section имеют значение reg-rootHKR или в следующих случаях:
- Для регистрации объектов COM ключ может быть записан в:
- HKCR
- HKLM\SOFTWARE\Classes
- Для создания аппаратных преобразований Media Foundation (MFT) можно записать ключ в:
- HKLM\SOFTWARE\Microsoft\Windows Media Foundation
- HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation
- HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows Media Foundation
- Для регистрации объектов COM ключ может быть записан в:
Директива INF CopyFiles действительна, только если целевой каталог является одним из следующих элементов:
- 11
- 12
- 13 (см . раздел Запуск из Driverstore)
Примечание: CopyFiles не может использоваться для переименования файла, для которого DestinationDirsсодержит 13. - 10,SysWOW64
- 10, имя подкаталога поставщика
Примечание: В Windows 10 версии 1709 использование dirid 10 с именем подкаталога конкретного поставщика допустимо в универсальном INF,измеренном с помощью средства InfVerif. В более поздних выпусках это значение может не поддерживаться. Мы рекомендуем перейти на 13.