Использование универсального 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 действителен до тех пор, пока в оформлении TargetOSVersion нет флага ProductType или флага SuiteMask.

Раздел INF DefaultInstall действителен только в том случае, если он имеет оформление архитектуры, например [DefaultInstall.NTAMD64].

Какие директивы INF недопустимы в универсальном INF-файле?

В универсальном INF-файле можно использовать любую системную директиву INF, за исключением следующего:

Следующие директивы допустимы с некоторыми оговорками:

  • Директива 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
  • Директива INF CopyFiles действительна, только если целевой каталог является одним из следующих элементов:

    • 11
    • 12
    • 13 (см . раздел Запуск из Driverstore)
      Примечание: CopyFiles не может использоваться для переименования файла, для которого DestinationDirsсодержит 13.
    • 10,SysWOW64
    • 10, имя подкаталога поставщика
      Примечание: В Windows 10 версии 1709 использование dirid 10 с именем подкаталога конкретного поставщика допустимо в универсальном INF,измеренном с помощью средства InfVerif. В более поздних выпусках это значение может не поддерживаться. Мы рекомендуем перейти на 13.

См. также: