|
大家都知道,在“我的电脑”里有数也数不清的INF文件,但是却很少有人知道,INF文件是干什么用的。充其量,也仅仅停留在INF文件能够解开锁定的注册表这一感性的认识上,那么到底什么是INF文件,INF文件又能干些什么呢?今天让我们一起走进INF文件这一神秘的世界。
0 j9 e1 p. V; D8 _1 [: J( C 揭开INF文件的神秘面纱 $ I: \: C4 \9 [: R; X0 ]+ D- q
INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。
" g$ d8 R3 o0 S7 H 在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。 % R5 e. K# P# m( Z( ]/ i% [
解剖INF文件的结构 - c L+ P) d0 e: {8 z
INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。 8 W* }& n; `' d1 ]& s3 ?- i
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。
3 {3 J, k5 M. h3 v+ b& ]4 ]0 B *规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。
$ X7 R" L: v7 f+ {; P *规则三:INF文件对大小写不敏感。 4 M) t% Z9 |' R1 z1 ]0 R
*规则四:“;”号后面的内容为注释。 1 t: \, v1 e7 F* [* z8 |/ m
*规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行。 # {4 F! |4 R' A) p' L- S9 @
明白了INF文件的规则后,让我们一起来解剖INF文件的结构。. B4 K$ L8 b/ l0 w; |
1.Version节
0 W. m; @1 A& { F1 v2 b" V 每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一。 # U, |+ L3 F/ s4 z# m7 w- X
另外,该节中“CLASS”条目很重要,它表明了设备的类型,常见的类型有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)。
+ U3 }2 \; L# s8 c+ @ ^' | Y2 x+ \5 M 2.Manufacturer节 ; z4 k* _: f) ]/ d$ S
该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如“%ATi%=ATi”指明设备的生产商为“ATi”,这个大家都不会陌生吧,是显卡的生产商。
5 @3 t- j& a* L7 A$ S 3.SourceDisksNames节
9 U7 g# [2 l. A8 v9 K+ i- x 该节主要指明安装文件所在的介质。如:“1="ATi Drivers Release CD"”表明所有驱动程序都在零售版的CD盘上。
f" w. i# }( Q1 G 4.SourceDiskFiles节 - L& s* t% k$ C9 i8 E. _
驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。
9 x! i1 T4 ~- i! {* _& @ I 5.DestinationDirs节 * u! }' Y4 |) i( h9 h
INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。 ) u: W6 K0 K8 j/ D* r
6.DefaultInstall节和Install节 : w& c. k: ?" }- [; c* V; z' E$ R
在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。
! n# I& t: D. S' B- b, `6 D 7.String节 3 Z3 O9 V" V( \" s" x& j
这一节中定义了字符串变量: q8 M! p- U$ X% |9 S
,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。
5 ^0 V8 g; J9 q5 B) f读懂INF文件
" Q; }; D2 l9 f+ y2 n* V& V9 D# [* m' G% m& D4 l
下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构,如图1所示。
A5 Y! |9 V; J: ?
9 t* s/ d2 o& j- u7 g
. \5 ?! M% p. m, s3 o& n1 F
8 K6 ]/ P9 F/ I) F: R+ c
8 S- q- y+ w1 d6 v- [$ w9 U$ C
" A! e( A1 a. Q" n0 j INF文件精彩实例
- j R4 a: Y7 t8 h! l: @" ~' A
7 m! x! y1 }0 _$ D$ G, v% z4 c 光说不练不行,下面让我们来看几个INF文件的典型应用。 6 n+ D# r) N& q5 b5 F F
( O4 z1 j5 n9 \/ V7 l0 s8 z 1.打开“锁”定的注册表 ) f7 T$ o* o- I6 H
1 ]% K- ?9 B# }" ~: ?
第一步:打开记事本程序,输入以下内容:
) f) r' a) Q6 i+ L
+ q9 b7 i$ f7 C3 b5 b& E [version] 7 A; B5 O3 N4 T' Y* v
6 M# d e0 X9 I$ @/ d( Y
signature=”$chicago$” 0 x" i) w P* s1 I- s2 @5 N# M* o
9 F1 O4 h# c' n2 Z0 D! B3 [
[defaultinstall]
+ k# s; Y0 I9 p2 `" y% h
: N' [$ N- g3 | V delReg=DeleteMe
6 L% L# X6 s$ z9 c
1 h6 _/ [+ d+ Y v [DeleteMe] . n6 U H% q' z7 c
9 ~' {5 G' D7 Z K3 t$ j6 V HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools” & N% b# A/ L6 y7 i Q
# w9 Z) p/ ] I' D. C8 ` HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
' V. n& t- @4 r1 W* F
0 D2 G6 p& m; U) a5 |: n/ P* Q 输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF。 |
|