|
大家都知道,在“我的电脑”里有数也数不清的INF文件,但是却很少有人知道,INF文件是干什么用的。充其量,也仅仅停留在INF文件能够解开锁定的注册表这一感性的认识上,那么到底什么是INF文件,INF文件又能干些什么呢?今天让我们一起走进INF文件这一神秘的世界。
8 ?: K2 |! o" p. a b 揭开INF文件的神秘面纱
: s- a$ f9 {( E; U, r/ x INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加删除程序→Windows安装程序”来添加系统组件的时候,INF文件将会自动调用。而在其他场合下,则需要在INF文件上点击鼠标右键,然后选择“安装”,你才能顺利安装应用程序。
4 E+ Z. f* G- u) M 在C:/Windows/INF文件夹中存放有大量的INF文件。该文件夹一般处在隐含状态,如果你想查看该文件夹,可选择“查看→文件夹选项→查看”,然后在“文件和文件夹”选项下选择“显示所有文件”。 - i% h+ P. Q Y) W( H2 p1 a+ ]
解剖INF文件的结构
9 X7 h$ | k2 u' H8 N INF文件其实是一种纯文本文件,可以用任意一款文本编辑软件来打开进行编辑,如:记事本、写字板等。INF文件有一整套的编写规则,每一个INF文件都是严格按照这些规则来编写的。 # I" R. y1 \! r" ?9 c2 T' W
*规则一:INF文件是分节的,每一个INF文件有许多的节组成,节名用方括号括起来。这些节名有些是系统定义好的,有一些是用户自定义的。每一个节名最长为255个字符(Windows 2000/XP/2003操作系统中)或28个字符(Windows 98操作系统中)。节与节之间没有先后顺序的区别,另外,同一个INF文件中如果出现两个同样的节名,则系统会自动将这两个节名下面的条目合并到一起。
1 X% `- D' g i& e5 D( Q *规则二:在节与节之间的内容叫条目,每一个节又是由许多的条目组成的,每一个条目都是由形如“signature="$CHICAGO$"”的形式组成的。如果每一个条目的等号后有多个值,则每一个值之间用“,”号分隔开。 0 f: c" U9 i/ F1 ^6 f1 {3 r
*规则三:INF文件对大小写不敏感。
, \" `. _+ l+ ~: U1 Y4 K/ I *规则四:“;”号后面的内容为注释。 % Z9 e, l/ J7 n; w
*规则五:如果一个条目的内容过多,在一行无法书写完全,则用“\”将一行内容书写为多行。
3 [# W3 @ z; X( [# V& P9 _% W2 h 明白了INF文件的规则后,让我们一起来解剖INF文件的结构。2 ~! H1 j- ~/ H; o: c6 M: s
1.Version节
1 \. ]% Z9 D6 y+ ^ L$ w7 g8 \ 每一个INF文件都包含一个这样的节,该节中的条目主要是描述此INF文件支持的设备类型和适用的操作系统。在该节中如果出现“signature="$CHICAGO$"”这样的条目则表示该INF文件适用于Windows 98之后的所有操作系统,如果包含“signature="$Windows NT$"”这样的条目则表示该INF文件适用于Windows 2000/XP/2003操作系统,而且两者必具其一。 5 a9 N% F% r: G! `5 v$ R5 X
另外,该节中“CLASS”条目很重要,它表明了设备的类型,常见的类型有:Display(显示设备,如显卡)、Media(多媒体设备,如声卡)、Net(网络设备,通常是网卡)、Modem(调制解调器)、Printer(打印设备)、Image(图像捕获设备,如摄像头)。
7 C% M2 Q. N3 H/ `7 I( s% R 2.Manufacturer节 l( i$ H- A- y9 F w! h
该节中的条目主要是描述INF文件可以识别的所有硬件设备,其中包含有设备的生产厂家,以便设备的正确安装。如“%ATi%=ATi”指明设备的生产商为“ATi”,这个大家都不会陌生吧,是显卡的生产商。 3 K5 c) f; R+ A& x4 l
3.SourceDisksNames节 - l1 m$ w( W+ Y* S7 H8 G7 P6 a# o3 Q
该节主要指明安装文件所在的介质。如:“1="ATi Drivers Release CD"”表明所有驱动程序都在零售版的CD盘上。
$ X3 K' q( ^7 g- d+ r 4.SourceDiskFiles节
5 K* y0 @6 r& `, a2 l. [3 ]3 G 驱动程序文件列表及被安装的位置,该节必须结合[SourceDisksNames]节才能知道具体的位置。如“atinbtxx.sys=1”,则你必须到[DestinationDirs]节去查看“1”具体代表那个位置。
7 E" F' p( D/ m: k7 p H4 {3 I 5.DestinationDirs节
: A, \2 Z. ^( `. F$ k3 S INF文件会指示安装程序在安装的过程中,将一些文件复制到硬盘上,或者将硬盘上的一些文件删除、重命名等。该节即指定了为实现上述目的的文件所在的目的路径。
6 v/ n- Q; G# q2 I1 ]* T 6.DefaultInstall节和Install节 * E- t# X' ~: f! x2 B
在这一节中描述了设备驱动程序与硬件设备的实际属性。默认情况下,首先执行[DefaultInstall]节,该节指定了要复制或删除的文件,注册表的更新,INF文件的更新等等信息,同时又包含指向其他节的指针。
; x0 b5 U/ B3 ]7 R1 P4 U% | 7.String节
5 ]8 [0 m# n3 ~3 }$ c* \ 这一节中定义了字符串变量 e8 c; ?1 j5 n8 K3 [/ i
,当某些字符串频繁地出现在INF文件中,为简化输入,可以在该节中定义一个字符串变量,代表该字符串出现在INF文件中。
7 b) Z$ N$ d; X5 ?. l1 T) F读懂INF文件
& U3 K; u# J! ]0 [* L6 o+ i; u* x; h ?* S; G# \8 m1 \% i: `! B; G
下面让我们以ATi显卡的用于Windows XP的WDM驱动程序为例来说明一下INF文件的具体含义,由于INF文件往往很长,为了说明方便,我们删除了一些大部分的信息,仅保留一个INF文件的结构,如图1所示。 ( |4 @: Q$ k" s% A, h/ X3 D
; |* g) F2 W1 p; k& F% k3 u/ F : U& q/ z, ~* S( Q* W6 r9 _3 O; o% l
* L( T8 b# G: q3 G8 |- F" S
! X' r1 C, ~( q+ I0 i
8 }9 _# |9 R* M: u5 C: \7 M8 R INF文件精彩实例
$ a- M' B- W) e" G
9 r& A! @* v: E* b W 光说不练不行,下面让我们来看几个INF文件的典型应用。 7 C Q; C P: q2 R, d" m
6 ?' B7 M3 v& h C" t5 A0 q 1.打开“锁”定的注册表
' a6 T( E2 Q$ f/ `6 U
* t) S, H( \4 L2 K$ a 第一步:打开记事本程序,输入以下内容: b8 C$ |* H3 _ b
* q( z2 {7 a1 N0 z3 P9 ~
[version]
3 k6 U5 g% b- H% ~0 d( t9 y G% |+ R% B
signature=”$chicago$” / A& F% h3 M1 }. i1 W! l* p* I
7 l) W" d$ E1 d- c5 T' U. O2 [ [defaultinstall]
. O$ g. j2 j5 B/ ?6 W9 A% l' x0 e! Z. |" i* u( e% q
delReg=DeleteMe
% a+ Z$ E7 i& o3 O9 w7 X2 x0 K. \( S1 Z$ S, ^% H# I) G* \
[DeleteMe] ( h& c4 Y: } l" S4 V
. W+ |4 U8 G; A) n
HKCU,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools”
( h3 C% ^, f3 S. e; r, C5 R. u7 c
) l# y1 l% ]* `' ~7 U! E M a HKLM,“Software\Microsoft\Windows\CurrentVersion\Policies\System”,“DisableregstryTools” 3 q. J S4 h4 ^
. b$ s( I- e' L* G% ~8 A0 x7 ^
输入完毕,另存为UNLOCK.INF,名字任取,扩展名必须是INF。 |
|