Создание INF-файлов для нескольких платформ и операционных систем

С помощью системных расширений платформы для разделов и директив INF можно создать один INF-файл для кроссплатформенных установок. Расширения позволяют создавать декорированные имена разделов, которые указывают, какие разделы и директивы относятся к каждой целевой платформе и операционной системе. Например, можно создать INF-файл, который устанавливает устройство только в системах на основе x64, только в системах на основе Itanium, только в системах на основе x86 или во всех системах, поддерживаемых Windows 2000 и более поздних версий Windows.

В следующей таблице приведены расширения платформы, поддерживаемые системой, которые можно добавить в имена разделов, поддерживающих расширения.

Расширение платформы Использование

.ntamd64

В этом разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе x64, поддерживаемых Windows XP и более поздних версий.

.ntia64

В этом разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе Itanium, поддерживаемых Windows XP и более поздних версий.

.ntx86

В разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе x86, поддерживаемых Windows XP и более поздних версий.

.ntarm

В этом разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе Arm, поддерживаемых Windows 8 и более поздних версий.

.ntarm64

В этом разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе Arm64, поддерживаемых Windows 10 версии 1709 и более поздних версий.

.nt

В версиях Windows до Windows Server 2003 с пакетом обновления 1 (SP1) в разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, во всех системах, поддерживаемых операционной системой.

Начиная с Windows Server 2003 с пакетом обновления 1 (SP1) в разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе x86, поддерживаемых операционной системой.

(без расширения платформы)

В версиях Windows до Windows Server 2003 с пакетом обновления 1 (SP1) в разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, во всех системах, поддерживаемых операционной системой.

Начиная с Windows Server 2003 с пакетом обновления 1 (SP1) в разделе содержатся инструкции по установке устройства или набора моделей, совместимых с устройствами, в системах на основе x86, поддерживаемых операционной системой.

В Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях INF-файлы должны декорировать записи в разделе INF Models с расширениями .ntia64, .ntarm, .ntarm64 или .ntamd64, чтобы указать версии целевой операционной системы, отличные от x86. Эти расширения платформы не требуются в INF-файлах для версий целевой операционной системы на основе x86, но настоятельно рекомендуется. Одинаковое декоративное расширение платформы или расширение платформы NT является необязательным для всех других разделов, которые поддерживают расширения платформы.

Примечание.

Мы настоятельно рекомендуем всегда дополнять записи в разделе INF Models платформенными расширениями для целевых операционных систем Windows XP и более поздних версий Windows. Для аппаратных платформ на основе x86 следует избегать использования расширения платформы NT и использовать .ntx86 .

Для разделов, поддерживающих необязательные расширения платформы, Windows выбирает какой раздел для обработки, как показано ниже.

  1. Windows проверяет наличие раздела section-name.nt<архитектуры> и, если он существует, обрабатывает его. Windows проверяет расширение .nt<архитектуры> в обрабатываемом INF-файле и в любых включенных INF-файлах (то есть во всех INF-файлах, включенных с помощью записей Include).

  2. Если раздел section-name.nt<архитектуры> не существует, Windows проверяет наличие раздела section-name.nt в INF-файле или любых включенных INF-файлах. Если он существует, Windows обрабатывает раздел section-name.nt.

  3. Если раздел section-name.nt не существует, Windows обрабатывает раздел с именем раздела, который не включает расширение платформы.

В разделах, где расширения платформы .nt и .nt<архитектура> являются необязательными, самый простой подход к созданию и поддержанию кроссплатформенного INF-файла заключается в том, чтобы не использовать расширения платформы для этих имен разделов и включать расширение .nt<архитектура> только в именах разделов моделей INF. Однако в этом случае предполагается, что INF-файл не требует копирования определенных версий файлов архитектуры, а параметры установки одинаковы для архитектур. Более сложные сценарии кроссплатформенных INFs см. в разделе "Объединение расширений платформы с другими расширениями имен разделов".

Чтобы создать такой простой кроссплатформенный INF-файл, сделайте следующее:

  1. Создайте допустимый INF-файл, содержащий универсальные записи, необходимые во всех INF-файлах, как описано в общих рекомендациях по INF-файлам.

  2. Включите раздел INF Manufacturer, содержащий идентификатор производителя, указывающий имя раздела INF Models для устройства и указывающее расширение платформы архитектуры> NT<. Например, в следующем разделе производителя указывается имя раздела INF Models как "AbcModelSection" для устройства Abc и расширение платформы .nt<.>.

    [Manufacturer]
    ; The manufacturer-identifier for the Abc device.
    %ManufacturerName%=AbcModelSection,nt<architecture>
    
  3. Включите раздел архитектуры> Models.nt<, имя которого соответствует имени раздела "Модели", указанного идентификатором производителя в разделе "Производитель". Например, следующий раздел архитектуры> AbcModelSection.nt< для устройства Abc содержит описание устройства, указывающее имя раздела установки AbcInstallSection.

    [AbcModelSection.nt<architecture>]
    %AbcDeviceName%=AbcInstallSection,Abc-hw-id
    
  4. Включите раздел DDInstall , имя которого соответствует имени install-section-name , заданному разделом Models . Например, описание устройства в разделе AbcModelSection указывает следующий раздел AbcInstallSection для устройства Abc.

    [AbcInstallSection]
    ; Install section entries go here.
    ...
    
  5. Включите другие разделы, относящиеся к устройству, которые необходимы для установки устройства, но не добавляйте к именам этих разделов расширение платформы архитектуры NT<>. Дополнительные сведения о разделах и директивах INF-файла см. в разделе "Сводка разделов INF " и "Сводка директив INF".

См. также