|
大家都知道,在“我的电脑”里有数也数不清的INF文件,但是却很少有人知道,INF文件是干什么用的。充其量,也仅仅停留在INF文件能够解开锁定的注册表这一感性的认识上,那么到底什么是INF文件,INF文件又能干些什么呢?今天让我们一起走进INF文件这一神秘的世界。
4 s& B3 t m+ n5 G9 \9 n 揭开INF文件的神秘面纱
& o8 D* a% ^6 N9 r INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。 7 W* f* i% d: I7 e! C, u# N7 t
在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。 - ~. F; G* Y" u: K9 y
解剖INF文件的结构
$ d1 B1 F6 b5 I: M d" q$ N INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。 5 b% h# J0 P& l* C; b* F! [! L2 N
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。
h3 J' @0 K( A; e *规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。
3 P4 W. {) `& j9 b' o# e9 I2 Q6 } *规则三:INF文件对大小写不敏感。 ( Z* n$ ]* e) \; d7 Y% ^
*规则四:“;”号后面的内容为注释。
* r9 u* Z! e9 p( w- E7 B2 w7 v *规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行。 % a4 O& C# q: q1 I7 W
明白了INF文件的规则后,让我们一起来解剖INF文件的结构。
+ Y9 W) C9 e8 r1 r- l 1.Version节 & G* l. S" b/ u9 O
每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一。
0 v/ G* S* a% G7 }) s+ W 另外,该节中“CLASS”条目很重要,它表明了设备的类型,常见的类型有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)。
+ w( {: g; ?; ^ 2.Manufacturer节
, j4 i& C/ q' h0 D' ~* Y( d/ t4 c7 q 该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如“%ATi%=ATi”指明设备的生产商为“ATi”,这个大家都不会陌生吧,是显卡的生产商。 ; _; S3 E' [, c/ j6 j
3.SourceDisksNames节 7 w9 n3 }3 N$ Z" {+ B
该节主要指明安装文件所在的介质。如:“1="ATi Drivers Release CD"”表明所有驱动程序都在零售版的CD盘上。 7 ~7 l/ y; a1 F, y: H8 j* V7 L
4.SourceDiskFiles节 9 i2 c! C. q2 s, Y' D: K
驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。
4 H8 t7 z) U' i# L* l o# Q6 W" z 5.DestinationDirs节
1 x6 ]+ a) T ^; j# v. G INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。 + F+ `. V8 E) r7 ^! w. s0 X# ^
6.DefaultInstall节和Install节 ! t9 u/ O7 g9 }, A9 n
在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。 / E; _& [4 c/ v3 L8 u
7.String节 - e9 m8 |3 ~2 Q, c7 r5 @: ^1 a- Q
这一节中定义了字符串变量
/ d9 E" N4 E% U4 b4 l k,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。9 |1 N7 ?0 [$ U2 n. z
读懂INF文件 ( J: {' ~0 J& k$ \% y
) }2 o+ y# L; |1 r4 ~* U 下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构,如图1所示。 : X7 N( Y) Q/ c9 `' O2 R
$ D2 @6 \1 a' `
' J0 |6 b* i+ s. Q
+ b: g3 M) l' k* {4 Y
, B9 j8 P/ R+ o% r2 X$ Z
. H/ ?* W4 z1 ~$ [# L INF文件精彩实例 ' B* Y9 _7 p" ?
X3 z) c: Y+ R2 f9 U
光说不练不行,下面让我们来看几个INF文件的典型应用。 8 x3 E0 h0 ^! l# p) q3 j$ V
- G9 @# |4 l+ p* S
1.打开“锁”定的注册表 4 ?, E" ?) h; R% y1 L& e& C! S
# s+ g7 ^' }' O5 o/ I1 a# _
第一步:打开记事本程序,输入以下内容:
; R9 a5 b- }. b2 f& c2 i
$ p9 L; D+ w! F o3 W4 o# | [version] , S6 n) U7 Z/ O1 g& w& N# [6 ?
" i! I! Q4 u; ?9 y/ k
signature=”$chicago$”
# l8 p# D! ?4 y/ c8 Z2 _2 a/ C0 H0 V, q$ v
[defaultinstall] # Z, c7 ^' W3 z4 R8 V3 ]5 Q
5 B6 C0 Z" g# K; {% _( A7 @0 w
delReg=DeleteMe & [7 K* g; j- N4 e; q
) k1 `( ~4 ?' {+ v+ _: [ [DeleteMe] + G4 J! ]% ]7 Q* G' G B: i
0 N( o' V! B% |; a HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools” ; ]* ~9 ~' R; |% ]- o. j
, \! F+ B& q& Y1 c, { HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
0 i$ w/ @9 c- ^7 z
( j. {/ |/ K! n9 n0 W$ d 输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF。 |
|