分类

安卓应用安卓游戏攻略资讯

操作系统

探索动力之源:从INF文件认识驱动

作者:佚名 来源: JZ5U整理 日期:2005-10-14 20:03:18
相信朋友们对驱动程序的作用和安装应该不会陌生,但INF文件与驱动程序究竟有何关系呢?其实,INF是Device Information File(设备信息文件)的简称,设备管理器通过读取相应的INF文件来安装驱动程序,其中记录了驱动程序安装的所有操作,包括复制文件到指定路径、添加或修改注册表、加载系统服务等,而实际的驱动程序则存放在sys、dll、vxd等文件中。

  INF文件的构成

  在C:\Windows\下有一个名为INF的隐藏文件夹,我们可以找到很多??.INF、??.pnf格式的文件,前者即所谓的设备信息文件,后者是预编译信息文件。用记事本可以打开INF文件,其中记录了必要的硬件安装信息,包括设备类型、设备生产厂商名称、适用产品等信息,Windows可以据此自动安装驱动程序。如图1所示,这是CPU的INF文件,笔者以此为例介绍主要构成部分:

  1. [version]:版本信息

  Signature="WINDOWS NT":这表示驱动程序适用于Windows 2000/XP操作系统,如果是Windows 9x/Me则应该是“CHICAGO”。

  Class:设备类型,这里的“Processor”表示中央处理器,即我们通常所说的CPU。如果是显卡设备的INF文件,这里会显示为“Display”,光驱设备是“CD-ROM”,显示器是“Monitor”,声卡等多媒体设备是“Media”,网卡是“Net”,打印机是“Print”,摄像头是“Image”。

  DriverVer:设备驱动程序的版本和发布日期

  2. [Manufacturer]:生产厂商信息

  3. [DestinationDirs]:驱动程序安装路径

  DefaultDestDir = 12:这里的“12”表示将驱动程序文件安装到\Windows\文件夹下,如果是“11”则表示将驱动程序文件安装到C:\Windows\System32\文件夹下。

  4. [Processor_Calss_Addreg]:向注册表中添加的键值

  安装INF文件

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

  第一步:解压缩驱动程序

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

  第二步:安装INF

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

  INF高级应用实例

  利用INF文件,我们可以完成很多意想不到的操作,这里通过几个实例进行说明:

  实例一:完全删除驱动程序

  很多情况下,当我们将不需要的硬件设备从系统拔出或取消连接后,其驱动程序并未从系统中真正删除,系统中仍然保留了这些设备的驱动程序文件和信息,时间一长,不仅会导致系统越来越庞大,而且这些顽固的驱动程序可能会影响新设备的安装,因为Windows会自动记忆曾安装过驱动程序的设备的INF文件信息,当我们再次安装同类型硬件时,系统会自作聪明的自动安装旧硬件的驱动程序,而拒绝接受新的驱动程序。

  例如笔者所使用的笔记本电脑,虽然提供了IEEE 1394接口,但由于平时并不使用相应设备,于是打算将其从系统中彻底卸载。首先从“控制面板”打开“设备管理器”窗口,在“IEEE 1394总线主控制器”下选择“Texas Instruments OHCI Compliant IEEE 1394 Host Controller设备”,右击后切换到“驱动程序文件详细信息”窗口,如图2所示,这里清楚地列出了该设备所对应的全部驱动程序文件的详细路径,请记录下来一一删除即可。对于未能正确显示驱动程序文件信息的设备,我们可以用记事本打开相应的INF文件,在[SourceDisksFiles]小节查找所有的??.dll、??.vxd、??.drv、??.exe、??.ini等类型的文件名,记录下来后手动删除。

  接下来,我们还需要进入C:\Windows\INF\文件夹,这里找到了1394.INF、1394vdbg.INF两个文件,将其全部删除就可以了。

  实例二:未通过WHQL认证的设备驱动程序的INF文件

  对于未通过微软WHQL认证(微软数字签名认证)的设备驱动程序,安装后你可能无法找到其对应的INF文件,它们的位置在哪里呢?

  原来,Windows对于那些未通过WHQL认证的设备驱动程序,安装时并未直接将相应的INF文件复制到C:\Windows\INF\文件夹中,而是进行了重新命名,以便系统识别和管理,当然这些文件的位置并未改变。它们的文件名以oem*开头,这里的“*”代表具体的数字,从0开始,其内容构成与普通的INF文件没有什么区别。

  实例三:让Windows 98自动安装驱动程序

  由于诸多原因,现在仍有部分朋友在使用Windows 98,由于发布较早,Windows 98对新硬件的识别不是很好,例如对目前热门的USB闪存盘就无法做到即插即用,而且插入的网卡通常也需要安装驱动程序,否则将无法正常使用。

  在Windows 98安装光盘的\Tools\reskit\INFinst\文件夹中提供了一个名为INFinst.exe的硬件信息安装程序文件,我们可以利用这个程序将相应设备的驱动程序手动集成至Windows 98的安装文件,以后在安装操作系统时,安装程序会自动检测所有已连接的硬件设备,并自动安装相应的驱动程序。

  实例四:让Windows认识改造硬件

  Analog Device公司为板载声卡提供了配套的SoundMAX驱动程序,通过安装在主板上的Codec与预告加载的音频渲染软件结合在一起,提供了广受欢迎的Yamaha DLSbyXG音色库和Sensaura 5.1 Virtual Theater环绕声,并且支持所有主流游戏音频技术,可惜的是只支持AD188x、AD189x、AD198x等有限的芯片。如果你的板载声卡使用了其他公司的芯片,在安装时将无法继续。 jz5u.com

  不过,通过某些技术手段,我们可以让非AD1985芯片的板载声卡安装SoundMAX驱动程序,这自然又要用到INF文件了。首先,从http://www.mydrivers.com/dir105/d42111.htm下载5.12.5243 WDM版本的SoundMAX驱动程序,下载时请注意对应相应的操作系统版本,将下载回来的文件解压缩,在“\SMAXWDM\W2K_XP\”文件夹有三个INF文件,其中smwdmCH4.inf文件对应的是Intel系列的ICH4芯片,smwdmCH6.INF对应的是Intel系列的IC6芯片,由于笔者使用的是VIA系列的芯片组,因此这里选择了smwdmCH5.inf,用记事本打开后定位到[AnalogDevices]小节的最后一行,按照固定的格式将板载声卡的ID号添加过来。

  板载声卡的ID号,可以在“DirectX诊断工具→声音”窗口中查看到,例如“PCI\VEN_1106DEV_3058SUBSYS_001214C0REV”,添加时请注意使用相同的格式,另外必须将两个“&&”符号补充在相应的位置,以保证足够的字符个数,否则安装时仍然会无法通过。接下来,我们就可以顺利安装SoundMAX驱动程序了。

展开

文章推荐

应用推荐

网友评论