㈠、INF文件是什么
.INF 是 Device Information File (设备信息文件)的缩写,是微软公司为供硬件设备制造商发布其设备驱动程序而发展的———许多硬件设备的驱动程序都是使用 .INF 文件来安装的。 .INF 文件从 Windows3.X 时代就开始大量被使用了。(说明:绿色部分可以忽略,仅做说明。蓝色部分为重点突出,文中要点,红色部分为特别注意,看仔细哦。)
先看这个最常见的 .INF 文件哈:
;示例04 寒夜孤星 AutoRun.inf 【自动播放】 [AutoRun] |
怎么样?没有比这个再简单的 .INF 文件了吧?这个就是所有 .INF 中最知名的啦!用于自动播放滴.INF ,通常位于根目录下。那么 .INF 是不是就很简单了捏?也不是。如果你不怕头晕的话,就接着看下去哈。。。
.INF 文件是一种具有特定格式的纯文本文件,我们可说它是一种安装脚本(SetupScript)。虽然 .INF 只是纯文本文件,但是当我们在文件管理器explorer对 .INF 文件按鼠标右键后,在右键菜单上就会出现“安装I”命令。
此“安装”动作关联命令行程序基本形式为: RunDll/rundll32 setupx.dll/SetupAPI.DLL,InstallHinfSection section reboot-mode inf-name 其中,rundll/rundll32程序以命令行的形式调用Windows的动态链接库,其命令格式为: Windows XP SP3 下为(示例):%SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1 说明:rundll及Setupx.dll在win9x系列的操作系统使用。在以后的讲解中不再区分这些。。。 |
这是因为微软公司已在其操作系统 Windows 中内置提供了 Setup API(可以解释.INF脚本文件setupx.dll/SetupAPI.DLL,setupx.dll/SetupAPI.DLL是安装API(Setup API)函数库,包含了InstallHinfSection、SetupGetInfSections、SetupInstallFromInfSecti
驱动层次模型:
|
|
|
下面首先给出一个驱动程序的 .INF 文件的例子,华尔特F18型摄像头驱动(本人滴),是我从摄像头驱动安装程序中抽取出来的用于WinXP的系统安装的usbvm31b.INF文件,删除了大部分内容,紧紧保留了一个基本的 .INF 文件的框架。
安装INF文件
第一步:解压缩驱动程序
如果下载回来的驱动程序是一个ZIP格式的压缩包,首先将其解压缩;如果下载回来的驱动程序是一个EXE格式的自解压文件,请使用WinRAR或WinZIP释放到一个临时文件夹中,然后查找到其中的
第二步:安装INF
在“我的电脑”或“资源管理器”中右击刚才找到的 .INF 文件,执行“安装”命令就可以了。这是因为微软在Windows中提供了Setup API,驱动程序开发人员不需要考虑接口、安装等事情。
.INF文件的格式
usbvm31b.INF中,可以看到.INF 文件是由许多节(Section)组成,与.INI 文件类似,整个.INF 文件由几个节组成,节名用方括号扩起来,如[version]节,[Manufacturer]节,和[Strings]节等等。而每个节又由一系列的条目组成,每个条目都是是由一个键(Key)与一个值(Value)组成,都是“Key=Value”这样的形式,在这些节中定义的项目可以完成硬件的自动检测和软件(包括驱动程序)的安装。.INF 文件中分号后面的字符串是注释。在一个 .INF 文件中,所有跟随在分号(;)后的文字都会被视为注释。注释并不一定要在新行开始,可以在一行文字后面加入注释。
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
说明:表中黑体节名是保留关键字,名称固定,大小写不敏感,斜体节名名称任意,由INF文件编写者确定。每节的标题字符均用括号([])括起。限于篇幅本文只对黑体节名做进一步的解释,斜体节名将根据情况而定。黑体和斜体仅用于本表,在以后的内容中不做区分。
.INF 文件的语法是统一的分节语法,随着操作系统的更新,微软逐渐增加了一些必要的关键字,但是整个的 .INF 文件的结构不会变化。从语法上来说, .INF 文件都是一个类别。
按照 .INF文件的版本来分类,可以分为2类:
1 AdvancedINF,在[Version]节中有“AdvancedINF=2.5,"您需要新版本的 AdvPack.dll" ”或者是“ AdvancedINF=2.5,"You need a newer version of AdvPack.DLL!" ”这么一行语句,表明此
2 普通INF,没有指明需要AdvPack.dll的.INF文件,使用SetupAPI.DLL来解释执行(win9x系列的操作系统使用Setupx.dll),系统中缺省使用的就是这种普通INF。
.INF 文件的功能
从前面的介绍,能够看出使用 .INF 文件可以完成如下功能:
1 复制文件、删除文件、或重新命名文件。
2 新增或删除注册表(Registry)中的项目。
3 修改重要的系统设置文件(如 Autoexec.bat、Config.sys 、 .INF
.INF文件的生成方法
可以直接手工用一个纯文本的编辑器书写 .INF 文件,当相对应的.REG文件非常庞大,条目比较多时候,可以用小工具reg2inf.exe来自动的把.REG文件转换为 .INF 文件,然后再进行相应的路径修改,把绝对路径替换为用逻辑磁盘标识符 (LDID) 来表示的路径。
如果涉及到文件操作的时候,只好手工写了,目前还没有自动化的工具。
.INF 文件的好处是,不像vbs那么强大,甚至有可能由危险的格式化代码。.INF 的限制很强,这样比其他的脚本文件安全,当然相对的功能就弱,但是也足够了。