INF文件详解

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

INF文件详解

INF文件格式要求

一个INF文件是以段组织的简单的文本文件。一些段油系统定义(System-Defined)的名称,而另一些段由INF文件的编写者命名。每个段包含特定的条目和命名,这些命名用于引用INF文件其它地方定义的附加段。

INF文件的语法规则:

1、要求的内容:在特定的INF文件中所要求的必选段和可选段、条目及命令依赖于所要安装的设备组件。

端点顺序可以是任意的,大多数的INF文件安装惯用的次序来安排各个段。

2、段名:INF文件的每个段从一个括在方括号[]中的段名开始。段名可以由系统定义或INF编写者定义

在Windows 2000中,段名的最大长度为255个字符。在Windows 98中,段名不应该超过28个字符。

如果INF设计要在两个平台上运行,必须遵守最小的限制。段名、条目和命令不分大小写。在一个INF 文件中如果有两个以上的段有相同的名字,系统将把其条目和命令合并成一个段。每个段以另一个新段的开始或文件的结束为结束。

3、使用串标记:在INF文件中的许多值,包括INF编写者定义的段名都可以标示成%strkey%形式的标记。

每个这样的strkey必须在INF文件的Strings段中定义为一系列显示可见字符组成的值。

4、行格式、续行及注释:段中的每个条目或命令以回车或换行符结束。在条目或命令中,“\”可以没用

做一个显示的续行符;分好“;”标示后面的内容是注释;可以用都好“,”分隔条目和命令中提供的多个值。

INF文件举例

下面是一个完整的.inf文件,它是Windows 2000 DDK提供的USB批量阐述驱动程序范例中所附的.inf 文件。

; Installation inf for the Intel 82930 USB Bulk IO Test Board

;

; (c) Copyright 1999 Microsoft

;

[Version]

Signature="$CHICAGO$"

Class=USB

ClassGUID={36FC9E60-C465-11CF-8056-444553540000}

provider=%MSFT%

DriverVer=08/05/1999

[SourceDisksNames]

1="BulkUsb Installation Disk",,,

[SourceDisksFiles]

BULKUSB.sys = 1

BULKUSB.inf = 1

[Manufacturer]

%MfgName%=Microsoft

[Microsoft]

%USB\VID_045E&PID_930A.DeviceDesc%=BULKUSB.Dev, USB\VID_045E&PID_930A

;[PreCopySection]

;HKR,,NoSetupUI,,1

[DestinationDirs]

BULKUSB.Files.Ext = 10,System32\Drivers

BULKUSB.Files.Inf = 10,INF

[BULKUSB.Dev]

CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf

AddReg=BULKUSB.AddReg

[BULKUSB.Dev.NT]

CopyFiles=BULKUSB.Files.Ext, BULKUSB.Files.Inf

AddReg=BULKUSB.AddReg

[BULKUSB.Dev.NT.Services]

Addservice = BULKUSB, 0x00000002, BULKUSB.AddService

[BULKUSB.AddService]

DisplayName = %BULKUSB.SvcDesc%

ServiceType = 1 ; SERVICE_KERNEL_DRIVER

StartType = 3 ; SERVICE_DEMAND_START

ErrorControl = 1 ; SERVICE_ERROR_NORMAL

ServiceBinary = %10%\System32\Drivers\BULKUSB.sys

LoadOrderGroup = Base

[BULKUSB.AddReg]

HKR,,DevLoader,,*ntkern

HKR,,NTMPDriver,,BULKUSB.sys

HKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","MaximumTransferSize",0x10001,4096 HKLM,"System\Currentcontrolset\Services\BulkUsb\Parameters","DebugLevel",0x10001,2

[BULKUSB.Files.Ext]

BULKUSB.sys

[BULKUSB.Files.Inf]

BulkUsb.Inf

;---------------------------------------------------------------;

[Strings]

MSFT="Microsoft"

MfgName="Intel"

USB\VID_045E&PID_930A.DeviceDesc="BulkUsb.Sys Intel 82930 USB Bulk IO Test Board"

BULKUSB.SvcDesc="BulkUsb.Sys i82930 Bulk IO test driver"

INF文件详解

从上面完整的例子来看,可以对INF文件有的一个总体的印象,包括INF文件中包括的段,以及各段的书写格式。下面详细介绍组成INF文件的各个段。

1、[Version]段

习惯上,每个INF文件都开始于一个Version段,这段确定文件中描述的设备类型,上述范例中的Verson 段有如下几条语句:

Signature=”$CHICAGO$”

Class=USB

ClassGUID={36FC9E60-C465-11CF-8056-444553540000}

provider=%MSFT%

DriverVer=08/05/1999

Signature指定使用此INF文件的操作系统,可以是$Chicage$、$Windows NT$(含有一个空格)、$Windows 95$(含有一个空格)之一,定界符$必不可少,且这些串是不分大小写的。如果Signature的值不是这些有效的串之一,该INF文件就被人为无效。如果一个INF文件用来向Windows 2000和Windows 98两个平台上安装设备驱动程序,它必须通过DDInstall段来增加系统定义的扩展指定任意操作系统特有的安装信息,而不管Signature是何值。

Class指定设备的类名,此范例中指定的是USB类。ClassGuid指定设备注册表的GUID,GUID是一个128位的标识符,DDK头文件DEVGUID.h定义了标准设备类的GUID。

Provide标志该INF文件的提供者。%MSFT%的具体内容将在Strings段中定义,范例中的定义是MSFT=”Microsoft”,表明该INF文件的提供者是Microsoft。

DriverVer条目提供整个INF文件的版本信息,在每个Install段中加上DriverVer条目,为驱动程序提供版本信息。Install段的驱动程序版本条目更具有专用性,并且比Version段的全局DriverVer条目日期具有更高的优先级。当操作系统搜索驱动程序时,他会选择一个具有更近的DriverVer日期的驱动程序代替一个较早的驱动程序。如果一个INF没有DriverVer条目,操作系统将会用缺省的日期00/00/0000。

2、[SourceDiskNames]段

该段制定并且命名一个或多个包含源文件的磁盘,这些源文件用于文件拷贝或者重命名操作。该段可以有任意条目,每个条目对应一个源盘。条目格式如下:

disk=%strkey%|”disk-description”,[tagfile],[unused],[path]

diskid是标志一个源盘的非负整数。这个值可以是十六进制或者十进制的形式标示,但他不能占用多余4个字节的存储单元。等式右边规定一个%strkey%标记或者一个引号引起来的串,描述由diskid所标示盘符的内容或目的。在安装过程中安装程序可以给终端用户显示这个串值。TagFile是一个可选的值,规定一个所带磁盘上提供的特征文件名,不规定任何目录和子目录。安装程序使用特征文件核对用户插入正确的安装盘。特征文件只能用于可移动的介质。

Unused值不用在Windows 2000中,只用在Windows 9x中。Path也是个可选项,用于标识磁盘上包含源文件的目录路径。范例中SourceDisksNames段的内容如下:

[SourceDiskNames]

1=”BulkUsb Installation Disk”…

范例规定源盘为磁盘1,在安装期间,安装程序可以给终端用户显示字符串“BulkUsbInstallation Disk”。

3、[SourceDisksFiles]段

该段命名安装过程中所用的源文件,标志包含这些源文件的磁盘(或者CD-ROM),并提供在所带磁盘上包含的每个文件的目录路径。一个SourcesDisksFiles段可以有任意多条目,磁盘上每个文件都有一个条目。它所包含的条目格式为

filename=disked[,[subdir][,size]]。

Filename规定磁盘上源文件的名称;diskid对顶一个整数来标志包含源文件的磁盘,即在

相关文档
最新文档