㈠、INF文件是什么

  .INF 是 Device Information File (设备信息文件)的缩写,是微软公司为供硬件设备制造商发布其设备驱动程序而发展的———许多硬件设备的驱动程序都是使用 .INF 文件来安装的。 .INF 文件从 Windows3.X 时代就开始大量被使用了。(说明绿色部分可以忽略,仅做说明。蓝色部分为重点突出,文中要点,红色部分为特别注意,看仔细哦。)

  先看这个最常见的 .INF 文件哈:

;示例04 寒夜孤星 AutoRun.inf自动播放

[AutoRun]
open=setup.exe
icon=%SystemRoot%\system32\SHELL32.dll,27

  怎么样?没有比这个再简单的 .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的动态链接库,其命令格式为:
rundll.exe/rundll32.exe <DLL文件名>,<入口点>,<调用参数>
setupx.dll/SetupAPI.DLL是安装API(Setup API)函数库,setupx.dll/SetupAPI.DLL与其后的入口点用逗号(,)分开,入口点是大小写敏感的。
Section是INF文件内初始执行节名,首先执行该节内容,默认情况下名称为“DefaultInstall”,系统用户一般不宜对此做任何改动,如被改动,则在后续INF文件的Install节使用相应修改后的名称。
reboot-mode是重启动参数,指示在INF文件执行后对系统的设置进行了改变,操作系统是否重新启动。该参数一般设为132或4,即由安装程序决定是否必须重启动,因为某些设置的改变必须在重启动后才能生效。
inf-name是INF文件的名称,“%1”即为所选中文件本身。

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、SetupInstallFromInfSection、SetupPromptForDisk、SetupDiCreateDevRegKey等INF文件内部语法检查、节名搜索、注册键创建等功能函数。),我们只需用文本编辑软件编写 .INF 文件,便可完成大部份的安装工作,所以尤其是在软体的大小并不是很大的情况下,安装工作不是很复杂的时候,使用 .INF 文件来进行安装工作将会是一个好选择。而且如果要安装设备驱动程序, .INF 文件是目前唯一的选择。 可以用 .INF 文件创建包括注册表条目和目的目录的自定义软件安装指令。 .INF 文件可以提供有限的平台独立性,并指定有限的软件依赖性。目前 .INF 文件最普遍的应用是为安装硬件设备的驱动程序服务的,本文的目的就是介绍 .INF 文件的功能、结构、并提供了几个事例来说明如何用 .INF 文件,如何扩展 .INF 文件的用途,比如制作绿色软件,仅供参考。

驱动层次模型:

I/O 管理器

 

 文件驱动

 中间层驱动

 设备驱动

 硬件抽象层

  下面首先给出一个驱动程序的 .INF 文件的例子,华尔特F18型摄像头驱动(本人滴),是我从摄像头驱动安装程序中抽取出来的用于WinXP的系统安装的usbvm31b.INF文件,删除了大部分内容,紧紧保留了一个基本的 .INF 文件的框架。

安装INF文件

  通常情况下,硬件厂商已经将驱动程序打包为一个安装程序或自解压程序,我们只需直接执行Setup.exe或XXX.exe即可,不过笔者建议还是安装 .INF 文件为好,这样不会同时安装一些无用的垃圾文件。

  第一步:解压缩驱动程序

  如果下载回来的驱动程序是一个ZIP格式的压缩包,首先将其解压缩;如果下载回来的驱动程序是一个EXE格式的自解压文件,请使用WinRAR或WinZIP释放到一个临时文件夹中,然后查找到其中的 .INF 文件。

  第二步:安装INF

  在“我的电脑”或“资源管理器”中右击刚才找到的 .INF 文件,执行“安装”命令就可以了。这是因为微软在Windows中提供了Setup API,驱动程序开发人员不需要考虑接口、安装等事情。

.INF文件的格式

  usbvm31b.INF中,可以看到.INF 文件是由许多节(Section)组成,与.INI 文件类似,整个.INF 文件由几个节组成,节名用方括号扩起来,如[version]节,[Manufacturer]节,和[Strings]节等等。而每个节又由一系列的条目组成,每个条目都是是由一个键(Key)与一个值(Value)组成,都是“Key=Value”这样的形式,在这些节中定义的项目可以完成硬件的自动检测和软件(包括驱动程序)的安装。.INF 文件中分号后面的字符串是注释。在一个 .INF 文件中,所有跟随在分号(;)后的文字都会被视为注释。注释并不一定要在新行开始,可以在一行文字后面加入注释。

节的名称

节的作用

[Version]

 INF文件头,提供有效INF文件的版本信息

[DefaultInstall]

 包含安装所关联动作(文件拷贝或删除,注册表键值的更新、子键增删等),在INF文件内的节名指针,默认情况下首先执行该节内容

[OtherInstall]

 与[DefaultInstall]节遵循相同的语法,但必须被显示地调用,常被用来定义反安装动作

[DestinationDirs]

 指定罗列于一个节内将被拷贝、删除或重命名的文件在盘上的位置
 [FileCopy/Delete/RenameSection(s)]  罗列被拷贝、删除或重命名的文件
 [RegistryUpDateRenameSection(s)]  罗列对注册表键值的更新、子键增删等动作
 [IniFileUpDateRenameSection(s)]  指定对ini文件的更新,快捷方式可通过该节进行创建

[SourceDisksNames]

 罗列文件所在盘的盘名、盘卷标、盘序列号

[SourceDisksFiles]

 罗列安装时使用的源文件极其所在盘

[Strings]

 罗列本地化字符串(或称宏字符串)

说明:表中黑体节名是保留关键字,名称固定,大小写不敏感,斜体节名名称任意,由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!" ”这么一行语句,表明此 .INF 文件需要AdvPack.dll这个动态链接库来解释执行,AdvancedINF有一些高级特性,但是在目前用的不太多。
2 普通INF,没有指明需要AdvPack.dll的.INF文件,使用SetupAPI.DLL来解释执行(win9x系列的操作系统使用Setupx.dll),系统中缺省使用的就是这种普通INF。

  .INF 文件的功能

从前面的介绍,能够看出使用 .INF 文件可以完成如下功能:
1 复制文件、删除文件、或重新命名文件。
2 新增或删除注册表(Registry)中的项目。
3 修改重要的系统设置文件(如 Autoexec.batConfig.sys.INF 等)。

.INF文件的生成方法

  可以直接手工用一个纯文本的编辑器书写 .INF 文件,当相对应的.REG文件非常庞大,条目比较多时候,可以用小工具reg2inf.exe来自动的把.REG文件转换为 .INF 文件,然后再进行相应的路径修改,把绝对路径替换为用逻辑磁盘标识符 (LDID) 来表示的路径。

  如果涉及到文件操作的时候,只好手工写了,目前还没有自动化的工具。

  .INF 文件的好处是,不像vbs那么强大,甚至有可能由危险的格式化代码。.INF 的限制很强,这样比其他的脚本文件安全,当然相对的功能就弱,但是也足够了。

INF安装信息文件①相关推荐

  1. INF安装信息文件⑥

    INF高级应用实例 利用INF文件,我们可以完成很多意想不到的操作,这里通过几个实例进行说明: 实例一:完全删除驱动程序 很多情况下,当我们将不需要的硬件设备从系统拔出或取消连接后,其驱动程序并未从系 ...

  2. 解读Inf文件(驱动程序安装信息文件)

    INF文件全称Information File文件,是Winodws操作系统下用来描述设备或文件等数据信息的文件.INF文件 是由标准的ASCII码组成,您可以用任何一款文字编辑器查看修改其中的内容. ...

  3. ModuleNotFoundError: No module named 'skimage'报错信息的解决方法及如何使用国内镜像安装库文件

    首先,之所以会出现ModuleNotFoundError这一系列的报错信息,是由于缺少指定的库文件.正如标题中所涉及到的这个错误,正是由于缺少skimage(Scikit-Image,一个处理数字图像 ...

  4. 一个用于制作Windows指针inf安装文件的小工具。

    不用多说也都知道鼠标inf安装文件的重要性,没了inf就算你的指针再美观,一个一个替换也会吓跑很多很多的人,于是做了这个小软件. 软件地址:Cursor INF Tool v1.3.rar - 蓝奏云 ...

  5. 1,我们无法创建新的分区,也找不到现有的分区。有关详细信息,请参阅安装日志文件。2,Windows 检测到EFI系统分区格式为NTFS。将EFI系统分区格式化为FAT32,然后重新启动安装。

    使用U盘重装win10系统时的两个错误.(我的是新买的固态硬盘作为系统盘,所以才重装系统) 1,我们无法创建新的分区,也找不到现有的分区.有关详细信息,请参阅安装日志文件. 2,Windows 检测到 ...

  6. 利用INF安装服务启动 及 浅析瑞星行为检测、360主动防御

    序 2010年,反病毒(AntiVirus)与反-反病毒(Anti-AntiVirus)不论是从技术的深度.涉及的方方面面,又上升了一个层次. 行为防御.云安全技术等一些新技术不断的加入反病毒的行列, ...

  7. 使用INF和OSD文件从Internet下载组件

    使用INF和OSD文件从Internet下载组件 作为系统服务,IE下载从internet组件通常需要进行认证和检查.对于发布者,有两种机制: 1.inf文件进行发布 2.osd文件发布(ie4及以后 ...

  8. windows 7 旗舰版下无法安装 msi 文件 解决办法

    安装msi文件显示如下信息: Windows (R) Installer. V 5.0.7600.16385 msiexec /Option <Required Parameter> [O ...

  9. python自动安装apk文件

    最近在学习python,在前一段时间用dos写了一脚本,自动安装apk文件,于是也试着用python写了一这样的脚本. dos脚本地址:http://blog.csdn.net/lyhdream/ar ...

  10. 会说话的狗狗本电脑版_「电脑知识」硬件狗狗专业电脑硬件检测跑分工具免安装单文件版|电脑硬件|电脑|显卡|狗狗|操作系统...

    最新很多小伙伴要求找一款适合大家的硬件检测跑分工具,今天给大家分享一款,简单的希望大家能够喜欢. 硬件狗狗专业的电脑硬件检测工具免安装单文件版,硬件狗狗是一款媲美鲁大师电脑硬件检测工具,由快科技(驱动 ...

最新文章

  1. 面向对象的设计原则最终篇
  2. MyEclipse 9.x Professional/blue/spring/bling 下载与破解
  3. linux改变工作目录命令,linux命令:cd命令,改变当前的工作目录
  4. HDU 1853 MCMF
  5. RTX5 | 线程管理03 - 线程退出osThreadExit
  6. CentOS 上snmp的安装和配置
  7. 全新版本的SoundSource for Mac - 优质的音频控制软件
  8. hbase java client 简介_hbase Java client(Release 1.0)
  9. ccy 朴素版(顺序搜索)19ms
  10. TMS320F28374S之X-BAR
  11. bzoj5294: [Bjoi2018]二进制(线段树)
  12. 记录百度点击登录无响应及百度搜索显示异常
  13. 牛客多校4J二分答案连续子段最大平均值
  14. 通用漏洞评分系统 (CVSS)系统入门指南
  15. 同余2:线性逆元和中国剩余定理的学习笔记
  16. linuxprobe第二弹
  17. Qt编写可视化大屏电子看板系统30-模块8物料管理
  18. 慎用X-UA-Compatibl
  19. Ubuntu8.04安装Realplayer11
  20. 2017HOTELEX Shanghai 3月28日闪亮登场

热门文章

  1. 【Codeforces】School Regional Team Contest, Saratov, 2011
  2. linux cpu使用率 理解,深入理解Linux的CPU使用率
  3. java实现学生信息管理系统
  4. 彪悍的人生不需要解释!
  5. C#箴言:定义常量的两种方法
  6. 转:马明哲:拥有执行力才能让你强大
  7. 【娱乐】Android实现监听通话、发送短信
  8. HTML+CSS大作业—汽车商城-功能齐全(42页) 大学生汽车商城网页设计模板代码 网购网页作业成品 汽车商城网站设计成品
  9. 拒绝平庸,这10个鲜为人知的实用网站,让你受益无穷!
  10. Mac 激活win10-报错:所请求的操作需要提升特权