45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:INF文件格式的详细介绍

INF文件格式的详细介绍

2016-08-29 09:54:56 来源:www.45fan.com 【

INF文件格式的详细介绍

http://blog.csdn.net/shanhe/archive/2004/12/25/229368.aspx

INF文件必须包含以下规则:

节(Sections)开始于由中括号([])扩起来的节名

必须包含版本信息节以表明自己属于win95还是winnt4格式。

(Value)%strkey%替代的表达式字符串表达组成,strkey必须在strings节中定义。如果出现%,则用%%替代。

Setup程序使用以下各节:

[Version] 必须包含在INF文件中,表明inf文件格式

[Version]

Signature="signature-name"

Class=class-name

ClassGUID=GUID

Provider=INF-creator

LayoutFile=filename.inf[,filename.inf]...

Signature-name

参数可以取值 $Windows NT$, $Chicago$, or $Windows 95$(引号括起来).如果不是以上这些字符串,则不被认可为inf文件。

Class-name

此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.

GUID

此参数用于安装设备驱动。详细信息见DDK Programmer's Guide.

INF-creator

标示INF的创建者. 典型的情况,此值为inf文件的创建者所在组织

filename.inf

INF文件必须包含SourceDisksFiles SourceDisksNames 节。这些文件的描述文件通常命名为 LAYOUT.INF. 如果文件名不是特别指定,SourceDisksNames SourceDisksFiles 必须出现在当前inf文件中

以下为典型的例子:

[Version]

Signature="$Windows NT$"

Class=Mouse

ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318}

Provider=%Provider%

LayoutFile=layout.inf

 

[Strings]

Provider="Corporation X"

[Install] 此节指定包含的安装指令节,每一个条目将会成为一节

[install-section-name]

LogConfig=log-config-section-name[,log-config-section-name]...

Copyfiles=file-list-section[,file-list-section]...

Renfiles=file-list-section[,file-list-section]...

Delfiles=file-list-section[,file-list-section]...

UpdateInis=update-ini-section[,update-ini-section]...

UpdateIniFields=update-inifields-section[,update-inifields-section]...

AddReg=add-registry-section[,add-registry-section]...

DelReg=del-registry-section[,del-registry-section]...

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...

 

以上各条目并非全部必须。节名必须为可见字符。每个条目包含一到多个节。第一个命名之后的所有命名必须以,引导。条目指定了必须出现在INF文件中的各节。CopyFiles则可例外(如果没有任何文件被拷贝)。

如果安装驱动程序,仅仅使用LogConfig条目。详见DDK Programmer's Guide.

CopyFiles条目中可以包含特殊字符@ 以直接拷贝一个单一文件。文件将拷贝到DefaultDestDir, DestinationDirs节包含了DefaultDestDir的描述。如例子:

[MyInstall]

CopyFiles= @MyFile.exe

此文件将拷贝到缺省目标目录。

为适应不同平台,可以在install节后加上不同的后缀。可以出现defaultInstall.nt这样的节名。install-section-name可选的后缀:

Extension Platform

.Win Windows 95

.NT Windows NT (all platforms)

.NTx86 Windows NT (x86 only)

.NTMIPS Windows NT (MIPS only)

.NTAlpha Windows NT (Alpha only)

.NTPPC Windows NT (PowerPC only)

以下例子展示了如何出现两个copyfiles节:

[Ser_Inst]

CopyFiles=Ser_CopyFiles, mouclass_CopyFiles

 

[Ser_CopyFiles]

sermouse.sys

 

[mouclass_CopyFiles]

mouclass.sys

[Add Registry] 描述如何增加注册表项目。add-registry-section 节名必须处现在install节中的 AddReg 条目中。

[add-registry-section]

reg-root-string, [subkey], [value-name], [flags], [value]

[reg-root-string, [subkey], [value-name], [flags], [value]]

 

reg-root-string 注册表的根名:

HKCR HKEY_CLASSES_ROOT.

HKCU HKEY_CURRENT_USER.

HKLM HKEY_LOCAL_MACHINE.

HKU HKEY_USERS.

HKR 相关于 SetupInstallFromInfSection.节中指定的值

subkey

可选,例如 key1/key2/key3....

value-name

可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值

flag 值类型的标示

Value Meaning

FLG_ADDREG_BINVALUETYPE The value is "raw" data.

FLG_ADDREG_NOCLOBBER 如果注册表中出现不要覆盖此值.

FLG_ADDREG_DELVAL 从注册表中删除此键

FLG_ADDREG_APPEND 追加一个值到已存值中,仅仅支持REG_MULTI_SZ

FLG_ADDREG_TYPE_MASK Mask.

FLG_ADDREG_TYPE_SZ REG_SZ类型

FLG_ADDREG_TYPE_MULTI_SZ REG_MULTI_SZ.

FLG_ADDREG_TYPE_EXPAND_SZ REG_EXPAND_SZ.

FLG_ADDREG_TYPE_BINARY REG_BINARY.

FLG_ADDREG_TYPE_DWORD REG_DWORD.

FLG_ADDREG_TYPE_NONE REG_NONE.

Windows 95 安装程序将视扩展数据类型为REG_SZ or REG_BINARY.

 

value

可选. 16进值或者字符串

 

[CopyFiles] 此类节可以有多个,定义于install节中。

[file-list-section]

destination-file-name[,source-file-name][,temporary-file-name][,flag]

[destination-file-name[,source-file-name][,temporary-file-name]][,flag]

.

destination-file-name

目标文件名,如果没有给出源文件名,那么此名也是源文件名.

source-file-name

源文件名,如果没有给出目标文件名,那么此名也是目标文件名.

temporary-file-name

被忽略,setup函数自动处理临时文件.

flag

可选,用于控制文件如何被拷贝。你必须配置实际值

COPYFLG_WARN_IF_SKIP (0x00000001)

如果用户试图在发生一个错误后跳过将显示警告信息

COPYFLG_NOSKIP (0x00000002)

不允许用户跳过拷贝此文件

COPYFLG_NOVERSIONCHECK (0x00000004)

如果文件存在于目标目录,忽略

COPYFLG_FORCE_FILE_IN_USE (0x00000008)

替换被使用得文件?,当拷贝时文件被使用

COPYFLG_NO_OVERWRITE (0x00000010)

不覆盖目标文件中已存文件

COPYFLG_NO_VERSION_DIALOG (0x00000020)

如果目标文件已存且新则不覆盖也不出现对话框

COPYFLG_REPLACEONLY (0x00000040)

替换目标文件

[delete Registry] 描述如何增加注册表项目。del-registry-section 节名必须处现在install节中的 DelReg 条目中。

[del-registry-section]

reg-root-string, [subkey], [value-name], [flags], [value]

[reg-root-string, [subkey], [value-name], [flags], [value]]

 

reg-root-string 注册表的根名:

HKCR HKEY_CLASSES_ROOT.

HKCU HKEY_CURRENT_USER.

HKLM HKEY_LOCAL_MACHINE.

HKU HKEY_USERS.

HKR 相关于 SetupInstallFromInfSection.节中指定的值

subkey

value-name

可选,标示subkey的值名称。对于字符串类型可以空,标示缺省字符串值

[Delete Files] 此节指定需要被删除的文件,节名必须出现在install中的delfiles条目中

[file-list-section]

file-name[,,,flag]

 

flag

可眩

DELFLG_IN_USE (0x00000001)

当因为文件正被使用,SetupCommitFileQueue 取消, 将排队在系统重新启动时候被删除。

如果不使用此值,则安装时候被使用的文件不会被delete files指定节删除

DELFLG_IN_USE1 (0x00010000)

高字节版本的DELFLG_IN_USE. Setting DELFLG_IN_USE1 差别在于同样可适用于Copyfiles节和delete Files节即使COPYFLG_WARN_IF_SKIP 标志被使用。

[INI File to Registry] 此节指示那些ini文件中的条目将对应到注册表。

[ini-to-registry-section]

ini-file, ini-section, [ini-key],reg-root-string,subkey[,flags]

ini-file

ini文件名.

ini-section

ini文件的节

ini-key

条目

flags

指示当注册表存在对应的注册表项目是否是否覆盖旧值。

Bit value

0 0 缺省,不删除ini文件项目,当ini转移到注册表后

0 1 删除ini文件中的项目,当ini转移到注册表后


本文地址:http://www.45fan.com/dnjc/69229.html
Tags: 文件 格式 INF
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部