[Manufacturer]
manufacturer-identifier
[manufacturer-identifier]
[manufacturer-identifier]
...
The Manufacturer section identifies the manufacturer of one or more devices that can be installed using the INF file.
manufacturer-name |
%strkey%=models-section-name |
%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ... (Windows XP and later)
These entries are defined as follows:
Any INF file that installs one or more devices must have a Manufacturer section. An IHV/OEM-supplied INF file typically specifies only a single entry in this section. If multiple entries are specified, each entry must be on a separate line of the INF.
Using a %strkey%=models-section-name entry simplifies the localization of the INF file for the international market, as described in Creating International INF Files and the reference page for the INF Strings section.
If an INF file specifies one or more entries in the manufacturer-name format, each such entry implicitly specifies the name of the corresponding Models section elsewhere in the INF.
You can think of each system-supplied INF file's Manufacturer section as a table of contents, because this section sets up the installation of every manufacturer's device models for a device setup class. Each entry in an INF file's Manufacturer section specifies both an easily localizable %strkey% token for the name of a manufacturer and a unique-to-the-INF per-manufacturer Models section name.
For Windows XP and later versions of NT-based operating systems, entries in the Manufacturer section can be decorated to specify operating system versions. Different INF Models sections can be specified for different versions of the operating system. The specified versions indicate OS versions with which the INF Models sections will be used. If no versions are specified, Setup uses a specified Models section for all versions of all operating systems.
The format of TargetOSVersion, the version decoration, is as follows:
NT[Architecture][.[OSMajorVersion][.[OSMinorVersion][.[ProductType][.SuiteMask]]]]
Each field is defined as follows:
0x0000001 (VER_NT_WORKSTATION)
0x0000002 (VER_NT_DOMAIN_CONTROLLER)
0x0000003 (VER_NT_SERVER)
If a product type is specified, the INF will be used only if the operating system matches the specified product type. If the INF supports multiple product types for a single OS version, multiple TargetOSVersion entries are required.
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)
If one or more suite mask values are specified, the INF will be used only if the operating system matches all of the specified product suites. If the INF supports multiple product suite combinations for a single OS version, multiple TargetOSVersion entries are required.
If your INF contains Manufacturer section entries with decorations, it must also include Models sections with names that match the OS decorations. For example, if an INF contains the following Manufacturer section:
%FooCorp%=FooMfg, NT....0x80, NT
Then the INF must also contain Models sections with the following names:
[FooMfg.NT....0x08] (Valid for Windows XP and later, Data Center only)
[FooMfg.NT] (Valid for Windows XP and later, all product types and suites)
During installation, Setup will use the [FooMfg.NT....0x08] Models section if it is running on any NT-based operating system version (Windows XP or later) that includes the Data Center product suite. If Setup is running on any NT-based operating system version, Windows XP or later, that does not include the Data Center product suite, Setup will use the [FooMfg.NT] Models section.
If the INF is intended for use with NT-based OS versions earlier than Windows XP, or for use with Windows 98/Me operating systems, it must also contain an undecorated models section named [FooMfg].
If an INF supports multiple manufacturers, these rules must be followed for each manufacturer.
Following are additional examples of TargetOSVersion decorations:
%FooCorp% = FooMfg, NTx86
For this example, the resultant Models section name is [FooMfg.NTx86], and is applicable for any x86 version of the NT-based operating system (Windows XP or later).
%FooCorp% = FooMfg, NT.7.8
In this case, for version 7.8 and later of the NT-based OS, the resultant Models section name is [FooMfg.NT.7.8]. For earlier versions such as Windows XP, [FooMfg] is used.
Setup's selection of which Models section to use is based on the following rules:
Suppose, for example, Setup is executing on Windows XP (version 5.1), without the Data Center product suite, and it finds the following entry in a Manufacturer section:
%FooCorp%=FooMfg, NT, NT.5, NT.5.5, NT....0x80
In this case, Setup will look for a Models section named [FooMfg.NT.5]. (Setup will also use the [FooMfg.NT.5] section if it is executing on a DataCenter version of Windows XP, because a specific version number takes precedence over the product type and suite mask.)
If you want an INF to explicitly exclude a specific OS version, product type, or suite, create an empty Models section. For example, an empty section named [FooMfg.NT.6.0] will prohibit installation on OS versions 6.0 and higher.
This example shows a Manufacturer section typical to an INF for a single IHV.
[Manufacturer] %LogiMfg%=LogiMfg ; Models section == LogiMfg ; ... [Strings] LogiMfg = "Logitech"
The next example shows part of a Manufacturer section typical to an INF for a device-class-specific installer:
[Manufacturer] %ADP%=ADAPTEC ; several entries omitted here for brevity %SONY%=SONY %ULTRASTOR%=ULTRASTORE
The following example shows a Manufacturer section that is specific to x86 platforms, Windows XP and later:
[Manufacturer] %foo%=foosec,NTx86.5.1 [foosec.NTx86.5.1]
The following two examples show skeletal INF files with a variety of OS-specific Models sections:
Example 1:
[Manufacturer] %MyName% = MyName,NTx86.5.1 . . [MyName] %MyDev% = InstallA,hwid . . [MyName.NTx86.5.1] %MyDev% = InstallB,hwid . . . [InstallA.ntx86] ; Windows 2000 (NT4-x86 will also try . ; to parse this section, no workaround) . . [InstallA] ; Win98/WinME (Win95 will also try . ; to parse this section, no workaround) . . [InstallB] ; Windows XP and later, x86 only . .
Example 2:
[Manufacturer] %MyName% = MyName,NT.6.0,NTx86.5.1 . . [MyName.NT.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 due to the NT.6.0 entry) %MyDev% = InstallB,hwid . . [MyName] ; Empty section, so this INF does not support . ; Win9x/NT4/Win2000 . .