Поделиться через


Раздел "Производитель 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 Models с тем же именем. Максимальная длина имени производителя в символах LINE_LEN. (Запись, указанная таким образом, не может быть локализована.)

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

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

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

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

Внимание

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

Замечания

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

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

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

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

Записи с именами моделей в разделе "Производитель " можно указать целевые версии операционной системы. Для разных версий операционной системы можно указать различные разделы INF Models. Указанные версии указывают версии операционной системы, с которыми используются разделы INF Models . Если версии не указаны, 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 Models можно использовать с любой аппаратной платформой.

Начиная с Windows Server 2003 с пакетом обновления 1 (SP1), архитектура должна быть указана в разделах INF Models для версий целевой операционной системы, отличных от x86. Архитектура является необязательной в именах разделов INF Models для версий целевой операционной системы на основе 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

ProductType
Число, представляющее один из флагов 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 см. в разделе "Объединение расширений платформы с версиями операционной системы".

Внимание

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

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

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

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

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

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

  • [FooMfg.NTamd64]

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

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

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

  2. Если Windows работает в версии операционной системы на основе x64 (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 Models[FooMfg.NT.7.8]. Для более ранних версий операционной системы, таких как Windows XP, используется [FooMfg.NT] .

Выбор конфигурации, в котором используется раздел INF Models , основан на следующих правилах:

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

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

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

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

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

Если необходимо явно исключить определенную версию операционной системы, тип продукта или набор, создайте пустой раздел INF Models. Например, пустой раздел с именем [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

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

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

[foosec.NTx86.5.1]

В следующем примере показан раздел производителя , относящееся к платформам x64, сборке 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 их объединяют в одну запись, как показано в этом примере. Не представлять каждый целевой объект в виде отдельной записи.

См. также

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

Модели

Строки