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

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

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

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

.ntamd64

Раздел содержит инструкции по установке устройства или набора совместимых с устройством моделей в 64-разрядных системах, поддерживаемых 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 расширениями платформы NTIA64, NTARM, NTARM64 или NTAMD64 для указания версий целевой операционной системы, не относящихся к x86. Эти расширения платформы не требуются в INF-файлах для версий целевой операционной системы на базе x86, но настоятельно рекомендуется. То же расширение платформы или расширение .NT является необязательным во всех других разделах, поддерживающих расширения платформы.

Примечание

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

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

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

  2. Если раздел section-name.nt<architecture> не существует, Windows проверяет наличие раздела имя_раздела.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, содержащий идентификатор производителя, который указывает имя раздела МОДЕЛИ INF для устройства и расширение платформы архитектуры> .NT<. Например, в следующем разделе Изготовитель указывается имя раздела МОДЕЛИ INF "AbcModelSection" для устройства Abc и расширения платформы .>NT<.

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

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

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

См. также раздел