INF Manufacturer Section

原创 2004年06月13日 16:00:00

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

INF Manufacturer Section

 

Manufacturer章节用于识别这样一些厂商,该厂商的一个或者多个设备能够使用该inf文件进行安装。

该章节的语法结构为:

[Manufacturer]

manufacturer-identifier

[manufacturer-identifier]

[manufacturer-identifier]

 

下面分别对该语法条目进行详细说明:

manufacturer-identifier (厂商标识):

该标识唯一确定一个厂商和inf文件的一个章节,该章节包含有确定厂商的设备类型的信息。每一个厂商标识条目必须独占一行(即每个标识不能分成两行来些,一行中也不能有多个标识),并且使用下面的格式来描述:

manufacturer-name |

%strkey%=models-section-name |

%strkey%=models-section-name [,TargetOSVersion] [,TargetOSVersion] ...    (用于XP以及以后版本)

 

这些条目的解释如下:

manufacturer-name

该条目确定设备的厂商,并且在inf文件中必须有一个相应的同样的名字的Models章节。(以这种方式提供的条目将不能被本地化。(?——这是什么意思呢))

strkey

指定一个在inf文件中唯一的记号来描绘厂商的名称。每个类似的%strkey%记号必须定义在inf文件的Strings章节中。

models-section-name

inf文件中为每一个厂商的Models章节指定一个inf创建者定义的名称。在名称在inf文件中必须是唯一的,并且必须遵循在inf文件一般语法规则中定义的确定章节名称规则。

TargetOSVersion

适用于Windows XP以及以后的版本中。这指定了一个或者多个操作系统版本,和指定的Models章节组合被使用。安装程序会在Models章节中选择一个和操作系统版本最匹配的来执行。关于该修饰段的详细描述,请参考下面的注释。

 

注释

任何需要安装一个或者多个设备的INF文件必须拥有一个Manufacturer章节。一个IHV/OEM提供的INF文件在该章节中代表性的指定了一个唯一的条目。如果有多个条目被指定,那么每个条目必须在不同的行中。

正如在创建国际化INF文件INF的String章节索引页中描述的,在国际化INF文件中使用%strkey%=models-section-name简化定位。

如果在一个INF文件中列出了一个或者多个manufacturer-name的格式条目,那么,每一个条目在INF文件的别处都有一个Models章节与之相应。

系统为设备类安装程序提供的INF文件中的Manufacturer章节有时也被称为“目录”,因为该章节为每一个厂商的设备模型类别的安装进行了设置。在INFManufacturer章节中的每个条目信息不仅简单的为厂商的名称用%strkey%记号来定位,而且为每个厂商在INF文件中指定了一个唯一的Models章节名称。

在基于NT技术的Windows XP以及以后版本的操作系统中,Manufacturer章节的所有条目都可以被装饰从而指定操作系统的版本。这意味着操作系统的不同版本会使用INF文件中的特定的Models章节。如果没有特殊的版本需求被指定,则安装程序会选择一个所有操作系统的所有版本都适用的Models章节。

下面就对TargetOSVersion的格式以及版本的装饰进行详细的说明:

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

其中每个域的单独解释如下:

NT

表明操作系统的版本支持与Windows XP以及以后的版本的操作系统。

Architecture

确定硬件平台,必须为x86或者ia64

OSMajorVersion

表示操作系统主版本的数字。比如Windows XP,则该数字为5

OSMinorVersion

表示操作系统次版本的数字。比如Windows XP,则该数字为1

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条目来标识。

 

如果在一个INF文件中的Manufacturer章节的条目拥有修饰字段,则必须包含和经过操作系统修饰的名称相匹配的Models章节。例如,如果一个INF文件中包含有如下的Manufacturer章节:

%FooCorp%=<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />FooMfg, NT....0x80, NT

则在该INF中必须拥有类似如下名称的Models章节:

[FooMfg.NT....0x08] (仅仅支持Windows XP以及以后版本的数据中心版本)

[FooMfg.NT] (支持Windows XP以及以后版本的所有产品类型和套件)

在安装期间,如果是运行在包含数据中心产品套件的基于NT技术的操作系统版本(Windows XP或者以后版本),则安装程序会选择[FooMfg.NT....0x08] Models章节。如果是运行在不包含数据中心套件的基于NT技术的操作系统版本,Windows XP或者以后版本上,则安装程序会选择[FooMfg.NT] Models的章节。

如果该INF文件特定为那些早于Windows XP并且基于NT技术的操作系统或者Windows 98/Me操作系统使用的,则在该INF文件中必须包含一个没有被修饰过的models章节名称[FooMfg]

如果一个INF文件支持多个厂商,那么所有的厂商都必须遵循这个规则。

下面是由关于TargetOSVersion修饰的附加例子说明:

"Foo Corp." = FooMfg, NTx86

该例子中,合成得到的Models章节名称为[FooMfg.NTx86],适用于任何基于NT技术的x86版本的操作系统(Windows XP或者以后版本)。

"Foo Corp." = FooMfg, NT.7.8

在这个例子中,适用于基于NT技术,并且版本为7.8或者更高版本的操作系统,合成得到的Models章节名称为[FooMfg.NT.7.8]。对于那些早期版本的Windows XP系统,则使用[FooMfg]

 

安装程序将采用下面的规则来选择哪个Models章节来使用:

l         如果在INF文件中的Models章节中有多个主要的或者次要的操作系统版本,安装程序将会选择一个不高于当前操作系统版本的最高版本的章节。

l         如果INF文件中和操作系统版本匹配的Models章节中又包含了产品类型或者/并且产品套件修饰,则安装程序会选择最接近于匹配当前系统的章节。

假设,例如,安装程序运行在没有数据中心产品套件的Windows XP(版本为5.1)上, 并且在Manufacturer章节中发现了下列的条目:

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

在这种情况下,安装程序将会寻找名称为[FooMfg.NT.5]Models章节。(如果是在数据中心版本的Windows XP上运行,安装程序同样会选择的[FooMfg.NT.5]章节,这是因为特殊的版本数字优先于产品类型和套件掩码。)

如果想在INF中明析地排除一个特定的操作系统版本,产品类型,或套件,创建一个空的Model章节。例如,一个名为[FooMfg.NT.6.0]的空的Model章节将禁止在版本6.0和更高的版本上进行安装。

 

例子

 

下面是Manufacturer章节的一部分,是一个典型的详细设备类安装的例子:

接着的Manufacturer章节的例子则特定了x86的平台,Windows XP和更高版本的系统:

 

下面的两个例子演示了对不同的操作系统的版本对Models章节的应用:

1:

2:

 

INF Version Section详解

最近在学习设备驱动程序方面,了解到安装sys文件需要INF文件,边学习边做笔记 原文链接:http://msdn.microsoft.com/en-us/library/windows/hardwa...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月26日 15:37
  • 2716

INF DestinationDirs Section

INF DestinationDirs Section INF DestinationDirs Section格式如下: [DestinationDirs] [DefaultDest...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月30日 09:05
  • 2058

INF SourceDisksNames Section 和 SourceDisksFiles Section详解

INF SourceDisksNames Section [SourceDisksNames] | [SourceDisksNames.x86] | [SourceDisksNames.ia64]...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月26日 17:47
  • 2258

INF文件详解(32位64位兼容INF)

INF文件格式要求 一个INF文件是以段组织的简单的文本文件。一些段油系统定义(System-Defined)的名称,而另一些段由INF文件的编写者命名。每个段包含特定的条目和命名,这些命名用于引用I...
  • whatday
  • whatday
  • 2013年08月30日 15:55
  • 16108

INF Models Section

INF Models Section 形如: [models-section-name] | [models-section-name.TargetOSVersion]  (...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月30日 09:01
  • 666

INF ClassInstall32 Section详解

原文链接:http://msdn.microsoft.com/en-us/library/windows/hardware/ff546335(v=vs.85).aspx INF ClassI...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月26日 22:40
  • 2281

INF DDInstall Section

INF DDInstall Section 形如: [install-section-name] |  [install-section-name.nt] |  [in...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月30日 08:59
  • 947

INF ClassInstall32.Services Section详解

原文链接:http://msdn.microsoft.com/en-us/library/windows/hardware/ff546339(v=vs.85).aspx ' ClassInstal...
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月27日 10:31
  • 1049

INF DDInstall.Services Section

INF DDInstall.Services Section [install-section-name.Services] | [install-section-name.nt....
  • zhanghui_hn
  • zhanghui_hn
  • 2012年04月30日 08:58
  • 750

如何识别小米设备/MIUI系统或其他品牌手机

前言国内各大手机厂商,搭着Android开源免费的快车,都想分一杯羹,不仅如此,还要自己定制系统,对开发狗来说,可是痛苦无比,经常碰到各种坑,所以还是打算记录下来,毕竟脑子不够用啊0.0 识别某种系统...
  • dazhaoDai
  • dazhaoDai
  • 2017年02月21日 11:41
  • 695
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:INF Manufacturer Section
举报原因:
原因补充:

(最多只允许输入30个字)