Раздел "Производитель INF"

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

[Manufacturer]

manufacturer-identifier
[manufacturer-identifier] 
[manufacturer-identifier] 
...

Записи

идентификатор производителя
Уникально идентифицирует производителя и раздел INF, содержащий сведения, определяющие модели устройств изготовителя. Каждая запись идентификатора производителя должна находиться в отдельной строке и иметь следующий формат:

manufacturer-name |
%strkey%=models-section-name |
%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ...  (Windows XP and later versions of Windows)

Эти записи определяются следующим образом:

название производителя
Определяет изготовителя устройств. Inf также должен содержать соответствующий раздел МОДЕЛИ INF с тем же именем. Максимальная длина имени изготовителя в символах составляет LINE_LEN. (Запись, указанная таким образом, не может быть локализована.)

strkey
Указывает уникальный маркер в INF-файле, представляющий имя производителя. Каждый такой токен %strkey% должен быть определен в разделе INF Strings INF-файла.

models-section-name
Задает определенное INF-запись имя для раздела моделей INF производителя в INF-файле. Это значение должно быть уникальным в INF-файле и соответствовать общим правилам определения имен разделов. Дополнительные сведения об этих правилах см. в статье Общие правила синтаксиса для ФАЙЛОВ INF.

TargetOSVersion
Указывает одну или несколько версий целевой операционной системы, с которыми можно использовать различные разделы моделей INF. Windows выбирает раздел МОДЕЛИ INF, который наиболее точно соответствует версии операционной системы, в которой он выполняется.

Описание оформления TargetOSVersion см. в следующем разделе "Примечания" и связанных сведениях в примере 3 ниже.

Важно!

Начиная с Windows Server 2003 с пакетом обновления 1 (SP1), INF-файлы должны заполнять записи models-section-name в разделе Inf Manufacturer (Изготовитель INF), а также соответствующие имена разделов модели INF для версий целевой операционной системы, отличных от x86. Эти расширения платформы не требуются в INF-файлах для версий целевой операционной системы на базе x86, но рекомендуется.

Комментарии

Любой INF-файл, устанавливающий одно или несколько устройств, должен иметь раздел Изготовитель . Inf-файл, предоставленный IHV или OEM, обычно указывает только одну запись в этом разделе. Если указано несколько записей, каждая запись должна находиться в отдельной строке INF.

Использование записи %strkey%=models-section-name упрощает локализацию INF-файла для международного рынка, как описано в статье Создание международных ФАЙЛОВ INF и справочная страница для раздела Inf Strings.

Если INF-файл указывает одну или несколько записей в формате названия производителя, каждая такая запись неявно указывает имя соответствующего раздела Models в другом месте INF.

Раздел Изготовитель каждого из системных INF-файлов можно рассматривать как оглавление, так как в этом разделе настраивается установка всех моделей устройств изготовителя для класса настройки устройства. Каждая запись в разделе Изготовитель INF-файла указывает как легко локализуемый маркер %strkey% для имени производителя, так и уникальное имя раздела Модели для каждого производителя.

Записи models-section-name в разделе Изготовитель можно указать целевые версии операционной системы. Для разных версий операционной системы можно указать разные разделы модели INF . Указанные версии указывают версии операционной системы, с которыми используются разделы МОДЕЛИ INF. Если версии не указаны, Windows использует указанный раздел Models для всех версий всех операционных систем.

Для Windows XP Windows 10 версии 1511 формат оформления TargetOSVersion выглядит следующим образом:

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.SuiteMask]]]]

Начиная с Windows 10 версии 1607 (сборка 14310 и более поздних версий), формат оформления TargetOSVersion выглядит следующим образом:

NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.[SuiteMask][.[BuildNumber]]]]]

Каждое поле определяется следующим образом:

NT
Указывает, что целевая операционная система основана на NT. Windows 2000 и более поздние версии Windows основаны на NT.

Архитектура
Определяет аппаратную платформу. Если этот параметр указан, это должны быть x86, ia64, amd64, arm или arm64.

До Windows Server 2003 с пакетом обновления 1 (SP1), если архитектура не указана, соответствующий раздел модели INF можно использовать с любой аппаратной платформой.

Начиная с Windows Server 2003 с пакетом обновления 1 (SP1), архитектура должна быть указана в именах разделов МОДЕЛИ INF для версий операционной системы, отличных от x86. Архитектура является необязательной в именах разделов МОДЕЛИ INF для версий целевой операционной системы на базе x86, но рекомендуется.

OSMajorVersion
Число, представляющее основной номер версии операционной системы. В следующей таблице определяется основная версия операционной системы Windows.

Примечание

Чтобы различать конкретные Windows 10 и 11 выпусков в INF-файле, необходимо использовать BuildNumber (см. ниже).

Версия Windows Основной номер версии
Windows 11 (все выпуски) 10
Windows Server 2022 10
Windows Server 2019 10
Windows Server 2016 10
Windows 10 (все выпуски) 10
Windows Server 2012 R2 6
Windows 8.1 6
Windows Server 2012 6
Windows 8 6
Windows Server 2008 R2 6
Windows 7 6
Windows Server 2008 6
Windows Vista 6
Windows Server 2003 R2 5
Windows Server 2003 5
Windows XP 5
Windows 2000 5

OSMinorVersion
Число, представляющее дополнительный номер версии операционной системы. В следующей таблице определена дополнительная версия для операционной системы Windows.

Версия Windows Дополнительный номер версии
Windows 11 (все выпуски) 0
Windows Server 2022 0
Windows Server 2019 0
Windows Server 2016 0
Windows 10 (все выпуски) 0
Windows Server 2012 R2 3
Windows 8.1 3
Windows Server 2012 2
Windows 8 2
Windows Server 2008 R2 1
Windows 7 1
Windows Server 2008 0
Windows Vista 0
Windows Server 2003 R2 2
Windows Server 2003 2
Windows XP 1
Windows 2000 0

Тип продукта
Число, представляющее один из флагов VER_NT_xxxx, определенных в Winnt.h, например:

0x0000001 (VER_NT_WORKSTATION)

0x0000002 (VER_NT_DOMAIN_CONTROLLER)

0x0000003 (VER_NT_SERVER)

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

SuiteMask
Число, представляющее сочетание одного или нескольких флагов VER_SUITE_xxxx, определенных в Winnt.h. К этим флагам относятся следующие:

0x00000001 (VER_SUITE_SMALLBUSINESS)

0x00000002 (VER_SUITE_ENTERPRISE)

0x00000004 (VER_SUITE_BACKOFFICE)

0x00000008 (VER_SUITE_COMMUNICATIONS)

0x00000010 (VER_SUITE_TERMINAL)

0x00000020 (VER_SUITE_SMALLBUSINESS_RESTRICTED)

0x00000040 (VER_SUITE_EMBEDDEDNT)

0x00000080 (VER_SUITE_DATACENTER)

0x00000100 (VER_SUITE_SINGLEUSERTS)

0x00000200 (VER_SUITE_PERSONAL)

0x00000400 (VER_SUITE_SERVERAPPLIANCE)

Если указано одно или несколько значений маски набора, INF используется только в том случае, если операционная система соответствует всем указанным наборам продуктов. Если INF поддерживает несколько сочетаний наборов продуктов для одной версии операционной системы, требуется несколько записей TargetOSVersion .

BuildNumber
Число, представляющее минимальный номер сборки ОС выпуска Windows, к которому относится этот раздел, начиная со сборки 14310 или более поздней версии.

Предполагается, что номер сборки относится только к определенной основной или дополнительной версии ОС и может быть сброшен для некоторых будущих основных или дополнительных версий ОС.

Любой номер сборки, указанный в оформлении TargetOSVersion , вычисляется только в том случае, если основная или дополнительная версия ОС TargetOSVersion точно соответствует текущей версии ОС (или AltPlatformInfo).  Если текущая версия ОС больше версии ОС, указанной в оформлении TargetOSVersion (OSMajorVersion,OSMinorVersion), раздел считается применимым независимо от указанного номера сборки. Аналогичным образом, если текущая версия ОС меньше версии ОС, указанной в оформлении TargetOSVersion , раздел неприменим.

Если указан номер сборки, версия ОС и номер сборки оформления TargetOSVersion должны быть больше версии ОС и номера сборки Windows 10 сборки 14310, в которой впервые появилось это оформление. Более ранние версии операционной системы без этих изменений (например, Windows 10 сборке 10240) не будут анализировать неизвестные украшения, поэтому попытка нацелиться на эти более ранние сборки фактически не позволит этой ОС считать оформление допустимым.

В следующей таблице определен номер сборки для операционной системы Windows.

Версия Windows Номер сборки
Windows 11 версии 23H2 22631
Windows 11 версии 22H2 22621
Windows 11 версии 21H2 22000
Windows Server 2022 20348
Windows 10 версии 22H2 19045
Windows 10 версии 21H2 19044
Windows 10 версии 21H1 19043
Windows 10 версии 20H2 19042
Windows 10 версии 2004 19041
Windows 10 версии 1909 18363
Windows 10 версии 1903 18362
Windows Server 2019 17763
Windows 10 версии 1809 17763
Windows 10 версии 1803 17134
Windows 10 версии 1709 16299
Windows 10 версии 1703 15063
Windows Server 2016 14393
Windows 10 версии 1607 14393

Дополнительные сведения о оформлении TargetOSVersion см. в разделе Объединение расширений платформы с версиями операционной системы.

Важно!

Мы настоятельно рекомендуем всегда украсить записи models-section-name в разделах Производитель и Модели расширениями платформы для целевых операционных систем Windows XP или более поздних версий Windows. Для аппаратных платформ на базе архитектуры x86 следует избегать использования . Расширение платформы NT и используйте . Вместо этого NTx86 .

Если inf содержит записи разделов Manufacturer с украшениями, он также должен включать разделы моделей INF с именами, которые соответствуют оформлению операционной системы. Например, если INF содержит следующий раздел Manufacturer :

%FooCorp%=FooMfg, NTx86.... 0x80, NTamd64

Затем INF-файл также должен содержать разделы модели INF со следующими именами:

  • [FooMfg.NTx86.... 0x80]

    Это имя относится к набору Центра обработки данных Windows XP и более поздним версиям Windows на аппаратных платформах x86.

  • [FooMfg.NTamd64]

    Это имя применяется ко всем типам продуктов и наборам Windows XP и более поздних версий Windows на аппаратных платформах x64.

Во время установки Windows выбирает раздел Модели INF следующим образом:

  1. Если Windows работает в версии операционной системы на базе x86 (Windows XP или более поздних версий), которая включает набор продуктов Data Center, Windows выбирает [FooMfg.NTx86.... 0x80]Раздел "Модели ".

  2. Если Windows работает в 64-разрядной версии операционной системы (Windows XP или более поздних версиях) для любого набора продуктов, Windows выбирает раздел [FooMfg.NTamd64]Models .

Если INF-файл предназначен для использования с версиями операционной системы, предшествующими Windows XP, он также должен содержать раздел неоконтированных моделейс именем [FooMfg].

Если INF поддерживает несколько производителей, эти правила должны соблюдаться для каждого производителя.

Ниже приведены дополнительные примеры оформления TargetOSVersion .

  • %FooCorp% = FooMfg, NTx86

    В этом примере результирующий раздел INF Models имеет имя [FooMfg.NTx86] и применим для любой версии операционной системы x86 (Windows XP или более поздней версии).

  • %FooCorp% = FooMfg, NT.7.8

    В этом примере для операционной системы версии 7.8 и более поздних итоговым именем раздела МОДЕЛИ INF является [FooMfg.NT.7.8]. Для более ранних версий операционной системы, таких как Windows XP, используется [FooMfg.NT] .

Выбор раздела "Модели INF" программы установки основан на следующих правилах:

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

  • Если в разделах Модели INF, которые соответствуют версии операционной системы, также содержатся элементы типа продукта и /или набора продуктов, Windows выбирает раздел, наиболее точно соответствующий работающей операционной системе.

Предположим, например, что Windows выполняется в Windows XP (версия 5.1) без набора продуктов Центра обработки данных и находит следующую запись в разделе Производитель :

%FooCorp%=FooMfg, NT, NT.5, NT.5.5, NT.... 0x80

В этом случае Windows ищет раздел Модели INFс именем [FooMfg.NT.5]. Windows также использует раздел [FooMfg.NT.5] , если он выполняется в версии Datacenter Windows XP, так как конкретный номер версии имеет приоритет над типом продукта и маской набора.

Если вы хотите, чтобы inf явным образом исключил определенную версию операционной системы, тип продукта или набор, создайте пустой раздел Модели INF. Например, пустой раздел с именем [FooMfg.NTx86.6.0] запрещает установку в операционных системах на базе x86 версии 6.0 и более поздних версий.

Примеры

В этом примере показан раздел Производителя , типичный для INF для одного IHV.

[Manufacturer]
%Mfg%=Contoso,NTamd64        ; Models section == Contoso

[Contoso.NTamd64]

; ...
[Strings]
Mfg = "Contoso, Ltd."

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

[Manufacturer]
%CONTOSO%=Contoso_Section,NTamd64
; several entries omitted here for brevity
%FABRIKAM%=Fabrikam_Section,NTamd64
%ADATUM%=Adatum_Section,NTamd64

В следующем примере показан раздел Manufacturer , относящееся к платформам x86, Windows XP и более поздних версий:

[Manufacturer]
%foo%=foosec,NTx86.5.1

[foosec.NTx86.5.1]

В следующем примере показан раздел Manufacturer, относящееся к 64-разрядным платформам, Windows 10 сборке 14393 и более поздних версий:

[Manufacturer]
%foo%=foosec,NTamd64.10.0...14393

[foosec.NTamd64.10.0...14393]

В следующих двух примерах показаны скелетные INF-файлы с различными разделами моделей INF для ос:

Пример 1:

[Manufacturer]
%MyName% = MyName,NTx86.5.1
.
[MyName]
%MyDev% = InstallA,hwid
.
[MyName.NTx86.5.1]
%MyDev% = InstallB,hwid
.
[InstallA]   ; Windows 2000 
.
.
[InstallB]   ; Windows XP and later, x86 only
.

Пример 2.

[Manufacturer]
%MyName% = MyName,NTx86.6.0,NTx86.5.1,
.
[MyName.NTx86.6.0] ; Empty section, so this INF does not support
.                  ; NT 6.0 and later.
.
[MyName.NTx86.5.1] ; Used for NT 5.1 and later
.                  ; (but not NT 6.0 and later due to the NTx86.6.0 entry)
%MyDev% = InstallB,hwid
.
[MyName]           ; Empty section, so this INF does not support
.                  ; Win2000
.

Пример 3.

[Manufacturer]
%MyMfg% = MyMfg, NTamd64.6.1, NTamd64.10.0, NTamd64.10.0...14310
.
[MyMfg.NTamd64.6.1]          ; Used for Windows 7 and later
.                            ; (but not for Windows 10 and later due to the NT.10.0 entry)
.
[MyMfg.NTamd64.10.0]         ; Used for Windows 10
.                            ; (but not for Windows 10 build 14393 and later due to the NT.10.0...14393 entry)
.
[MyMfg.NTamd64.10.0...14393] ; Used for Windows 10 build 14393 and later
.
.

Примечание

При указании нескольких TargetOSVersions их следует объединить в одну запись, как показано в этом примере. Не представляет каждый целевой объект в виде отдельной записи.

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

Объединение расширений платформы с версиями операционной системы

Модели

Строки