Использование универсального 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
- Раздел INF DDInstall.CoInstallers
- Раздел INF DDInstall.FactDef
- Раздел INF DDInstall.LogConfigOverride
Раздел производителя 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 действительна, если записи в указанном разделе надстройки имеют корневое значение HKR или в следующих случаях:
- Для регистрации объектов объектной модели компонента (COM) ключ может быть записан в следующих разделах:
- HKCR
- HKLM\SOFTWARE\Classes
- Для создания аппаратных преобразований Media Foundation (MFTs) ключ может быть записан в разделе:
- 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.