inf文件规则

来源:互联网 发布:excel2010宏编程教程 编辑:程序博客网 时间:2024/06/05 20:08

      INF文件即Device Information File(设备信息文件),主要用来指示安装Windows驱动程序。INF文件是Windows系统下用来描述设备或文件等数据信息的文件,是一个文本文件。INF的组成有节(Sections)、键(Key)和值(value)3部分,INF文件的节按照层次结构排列,以方括号的形式开始,后面紧跟该节的各个项和值。INF文件的节主要分为以下:

1.【Version】INF文件的开始,版本信息描述。【Version】节位于INF文件的开始处,描述了版本信息,主要用于版本控制,主要有Signature项,Class项和ClassGuid项。
Signature项定义了INF工作于何种操作系统,主要选项有$Windows NT$、$Windows 95$、$Chicago$,一般选择$Chicago$;
Class项,用于指明驱动程序的所属类别。
ClassGUID项,用于指明设备类别的GUID,这些GUID的值是固定的,可以参见Microsoft的官方网站,http://msdn2.microsoft.com/en-us/library/ms791134.aspx
CatalogFile项,指明数字签名文件的文件名,其扩展名为.Cat。
DriverVer项,指明驱动程序的版本信息,格式为mm/dd/yyyy [,x,y,v,z]。

2.源文件盘符节【SourceDisksNames】该节罗列源文件所在的盘符序列码、盘描述府、盘卷标号和盘序列号。该节内的语法为:
disk_ordinal=”disk_discription”,disk_label,disk_serial_number。
disk_ordinal为必选项,是盘符序列码,标识一个源盘,具有唯一性,一般可以设置为从1开始递增的整数。
Disk_decription为必选项,是盘描述符,用双引号括起来的字符串描述盘的内容,安装时将显示该字符串提示用户。
Disk_label 为源盘的卷标。
Disk_serial_number 未使用,但必须设置为0。

3. 源文件节【SourceDisksFiles】该节指定安装时使用的源文件和盘符序列码、盘描述符。该节的语法为:
file-name=disk-number,[subdir][,file-size]。
file-name为必选项,是源盘上文件的名称。
disk-number是包含file-name指定文件所在的源盘的盘符序列码,该盘符号序列码需在【SouceDiskNames】节中给出,并大于或等于1
SubDir为可选项,指定文件所在源盘的子目录。

4.目标磁盘节【DestinationDirs】指定CopyFiles、RenFiles或者DelFiles入口的缺省操作目录,其语法格式如下:
file-list-selection=LDID, [SubDir],其中LDID的取值决定目录,常见的是取01表示目录为当前目录,10表示目录为Windows目录,11表示目录为系统目录。

5.供应商节【Manufacturer】供应商节用于指明供应商及其对应的Models节的名称,其各项的格式如下:
%strkey%=ModelsName

6.默认的安装节【DefaultInstall】该节指明添加的注册表子节,等号后面为自定义节名,包含如下几项。LogConfig Log表示日志文件配置;CopyFiles表示复制文件;RenFiles表示文件改名;DelFiles表示删除文件;AddReg表示添加注册项;DelReg表示删除注册项。

7.字符串。该节定义了字符串变量,当某些字符频繁的出现在INF文件中时,为简化输入,可以在该节中定义一个字符串变量,用该字符串代表该字符出现在INF文件中,其定义格式如下:StrKey=”String”

    举例一个完整的实例,如下是USB的驱动配置的inf文件:

; Installation inf for the SEC SOC S3C2443X USB 2.0 Bulk IO Test B/D

 

[Version]
Signature="$CHICAGO$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
provider=%ProviderName%
DriverVer=03/21/2007

 

[SourceDisksNames]
1="USB Downloader Installation Disk for SEC SOC",,,

[SourceDisksFiles]
SECUSB2.sys = 1
SECUSB2.inf = 1

 

[Manufacturer]
%MfgName%=SystemLsi

 

[SystemLsi]
%USB/VID_04E8&PID_1234.DeviceDesc%=SECUSB2.Dev, USB/VID_04E8&PID_1234
%USB/VID_04E8&PID_6400.DeviceDesc%=SECUSB2.Dev, USB/VID_04E8&PID_6400

;[PreCopySection]
;HKR,,NoSetupUI,,1

 

[DestinationDirs]
SECUSB2.Files.Ext = 10,System32/Drivers
SECUSB2.Files.Inf = 10,INF

 

[SECUSB2.Dev]
CopyFiles=SECUSB2.Files.Ext, SECUSB2.Files.Inf
AddReg=SECUSB2.AddReg

 

[SECUSB2.Dev.NT]
CopyFiles=SECUSB2.Files.Ext, SECUSB2.Files.Inf
AddReg=SECUSB2.AddReg

 

[SECUSB2.Dev.NT.Services]
Addservice = SECUSB2, 0x00000002, SECUSB2.AddService

 

[SECUSB2.AddService]
DisplayName    = %SECUSB2.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%/System32/Drivers/SECUSB2.sys
LoadOrderGroup = Base

 

[SECUSB2.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,SECUSB2.sys
HKLM,"System/Currentcontrolset/Services/SECUSB2/Parameters","MaximumTransferSize",0x10001,4096
HKLM,"System/Currentcontrolset/Services/SECUSB2/Parameters","DebugLevel",0x10001,2


[SECUSB2.Files.Ext]
SECUSB2.sys

 

[SECUSB2.Files.Inf]
SECUSB2.Inf


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

[Strings]
ProviderName="SEC AP application Team"
MfgName="SEC, SYSTEM LSI"
USB/VID_04E8&PID_1234.DeviceDesc="SEC SOC SMDK Board"
USB/VID_04E8&PID_6400.DeviceDesc="SEC SOC SMDK Board"
SECUSB2.SvcDesc="SECUSB2.sys, SEC SOC USBD Driver"

 




 

原创粉丝点击