|
大家都知道,在“我的电脑”里有数也数不清的INF文件,但是却很少有人知道,INF文件是干什么用的。充其量,也仅仅停留在INF文件能够解开锁定的注册表这一感性的认识上,那么到底什么是INF文件,INF文件又能干些什么呢?今天让我们一起走进INF文件这一神秘的世界。 7 N$ c9 r, H9 }( |& e
揭开INF文件的神秘面纱 v: v" A' G8 D7 @ _1 d5 z
INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。 8 `0 |8 G' M8 W$ q; V+ Q
在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。
/ P6 L9 t5 F2 |& @; k& X# n* q 解剖INF文件的结构
8 A4 Q# b1 t5 k k INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。 " ~9 S5 p3 A: R# u, m+ G3 \
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。 : ~+ H _8 M! u8 M
*规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。
. n7 s7 m3 l& L+ U2 k+ o& S; k L *规则三:INF文件对大小写不敏感。 5 l O1 e2 ~! W1 o
*规则四:“;”号后面的内容为注释。 2 Y2 v; A( Z: o! k5 i0 v
*规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行。 + z9 E i$ r3 C
明白了INF文件的规则后,让我们一起来解剖INF文件的结构。
# Z! M/ n7 A& f% o5 f* ] 1.Version节
* i( c0 _& o: m! J0 ^3 N 每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一。
5 z; w3 J: N/ o' \ 另外,该节中“CLASS”条目很重要,它表明了设备的类型,常见的类型有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)。
$ g0 w9 O5 j a2 I' W. z1 | 2.Manufacturer节 # @) ~, R" w2 T3 I5 ?! X j0 W
该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如“%ATi%=ATi”指明设备的生产商为“ATi”,这个大家都不会陌生吧,是显卡的生产商。 6 {! c* m2 H$ X
3.SourceDisksNames节
k! d1 K/ @2 g } 该节主要指明安装文件所在的介质。如:“1="ATi Drivers Release CD"”表明所有驱动程序都在零售版的CD盘上。
+ `7 W% |4 M! V7 K: d1 `, P 4.SourceDiskFiles节
. J/ e9 ]8 D1 r3 a/ J. { 驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。 & T; s' P: Z7 S2 M# R: h
5.DestinationDirs节
5 J7 G0 B! q. J INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。 1 L3 S% l' g. h* \. Q
6.DefaultInstall节和Install节 ! K9 S- m0 A" G& l I* J" X
在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。 ' `+ k3 f* f& E! b5 ~! }6 t
7.String节 # e/ Q% ^8 T3 M. \
这一节中定义了字符串变量
1 E# R( g" }6 m' R,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。
0 n( n( H0 y0 T" j6 P读懂INF文件
5 r. }4 U( X% u1 w0 J" f" r8 W
/ b& T2 S, j8 k2 ~5 _ 下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构,如图1所示。 5 W* |. @8 G+ I! c& h+ L
1 i2 m* h1 E8 V2 _9 \
6 |! ~ y) G2 j0 p( ]/ V J# j$ U; G
4 F1 `6 U- y4 M# H' Z+ w
+ J; Q! w6 Q/ E" w5 F, b
+ E+ O! z: k7 A8 L' @6 T INF文件精彩实例
" n. B: d3 {3 t+ Z, Z
1 Q* D/ |$ q8 U: a3 I6 B 光说不练不行,下面让我们来看几个INF文件的典型应用。
7 L1 x1 ~) Q! K
& b0 n$ E. o5 ~. k8 @ 1.打开“锁”定的注册表
! Y, W! ?* Z, s) x$ ^7 c/ d. P3 [: Q$ \: U3 c5 v; G' g
第一步:打开记事本程序,输入以下内容:
# k0 b" J5 f( [& K q2 z v! [
8 O/ w/ m: F/ `8 v2 e, {0 i [version] 1 | T4 k3 `2 M9 p9 `# k8 u+ g! i
# z6 p& g& L' Z0 B
signature=”$chicago$”
0 N) I! A2 M5 u; n$ \+ I, K
. C! a7 c! L+ J- z0 ^: d [defaultinstall] # R6 u: K$ c# @$ [- d) P7 A$ E: ?
% [7 H$ ? }. v! o. z0 J' d
delReg=DeleteMe 4 O' i- p' {8 F& a- }
4 `+ ]; t; G5 P8 I
[DeleteMe] ' \8 f$ M3 z Q0 X! V
8 t* X' i! g) ?. B$ N: H HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
; j% @. n3 m |& P$ k; p
: u6 W0 h% ]- W8 R! f, k HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
5 s% y0 {: ?& t3 k5 C! I
$ \) g: l; L) \" \& |& { 输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF。 |
|