【转】从INF文件认识驱动
在工控机安装xp操作系统时,由于工控机的集成显卡驱动只支持win7,之前没接触过windows驱动相关内容,折腾了半天。下载的驱动是exe的,双击安装就提示安装失败(未签名)

上图是网上随便找的,现象是一样的。最后解决办法是运行exe安装文件后,在temp目录下找的它解压后的文件,然后在设备驱动选择手动指定安装目录,指定为这个目录进行强制安装。最后安装成功。
网上搜了下windows设备驱动inf文件介绍,对windows设备驱动有个初步了解。
相信朋友们对驱动程序的作用和安装应该不会陌生,但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:WindowsSystem32文件夹下。
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:WindowsINF文件夹,这里找到了1394.INF、1394vdbg.INF两个文件,将其全部删除就可以了。
实例二:未通过WHQL认证的设备驱动程序的INF文件
对于未通过微软WHQL认证(微软数字签名认证)的设备驱动程序,安装后你可能无法找到其对应的INF文件,它们的位置在哪里呢?
原来,Windows对于那些未通过WHQL认证的设备驱动程序,安装时并未直接将相应的INF文件复制到C:WindowsINF文件夹中,而是进行了重新命名,以便系统识别和管理,当然这些文件的位置并未改变。它们的文件名以oem*开头,这里的“*”代表具体的数字,从0开始,其内容构成与普通的INF文件没有什么区别。
实例三:让Windows 98自动安装驱动程序
由于诸多原因,现在仍有部分朋友在使用Windows 98,由于发布较早,Windows 98对新硬件的识别不是很好,例如对目前热门的USB闪存盘就无法做到即插即用,而且插入的网卡通常也需要安装驱动程序,否则将无法正常使用。
在Windows 98安装光盘的ToolsreskitINFinst文件夹中提供了一个名为INFinst.exe的硬件信息安装程序文件,我们可以利用这个程序将相应设备的驱动程序手动集成至Windows 98的安装文件,以后在安装操作系统时,安装程序会自动检测所有已连接的硬件设备,并自动安装相应的驱动程序。
实例四:让Windows认识改造硬件
Analog Device公司为板载声卡提供了配套的SoundMAX驱动程序,通过安装在主板上的Codec与预告加载的音频渲染软件结合在一起,提供了广受欢迎的Yamaha DLSbyXG音色库和Sensaura 5.1 Virtual Theater环绕声,并且支持所有主流游戏音频技术,可惜的是只支持AD188x、AD189x、AD198x等有限的芯片。如果你的板载声卡使用了其他公司的芯片,在安装时将无法继续。
不过,通过某些技术手段,我们可以让非AD1985芯片的板载声卡安装SoundMAX驱动程序,这自然又要用到INF文件了。首先,从http://www.mydrivers.com/dir105/d42111.htm下载5.12.5243 WDM版本的SoundMAX驱动程序,下载时请注意对应相应的操作系统版本,将下载回来的文件解压缩,在“SMAXWDMW2K_XP”文件夹有三个INF文件,其中smwdmCH4.inf文件对应的是Intel系列的ICH4芯片,smwdmCH6.INF对应的是Intel系列的IC6芯片,由于笔者使用的是VIA系列的芯片组,因此这里选择了smwdmCH5.inf,用记事本打开后定位到[AnalogDevices]小节的最后一行,按照固定的格式将板载声卡的ID号添加过来。
板载声卡的ID号,可以在“DirectX诊断工具→声音”窗口中查看到,例如“PCIVEN_1106DEV_3058SUBSYS_001214C0REV”,添加时请注意使用相同的格式,另外必须将两个“&&”符号补充在相应的位置,以保证足够的字符个数,否则安装时仍然会无法通过。接下来,我们就可以顺利安装SoundMAX驱动程序了。
转自http://diybbs.zol.com.cn/12/86_118938.html
【转】从INF文件认识驱动的更多相关文章
- Windows驱动 INF文件
参考一:百度百科 参考二:INF文件的节 参考三:wikipedia 参考四:MSDN: INF File INF文件的节 INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名 ...
- INF文件
百度百科:http://baike.baidu.com/view/637107.htm?fr=ala0_1_1 INF简介 INF是Device INFormation File的英文缩写,是Micr ...
- windows driver inf文件
原来修改了inf文件会导致签名过的驱动包哈希值不正确了啊.现在才知道. = = http://www.chiphell.com/thread-827956-1-1.html
- INF 右键安装驱动以及卸载
INF 右键安装驱动以及卸载 之前写过一篇文章是关于INF文件详解的,大家可以参看INF文件详解,这次写的是关于INF右键安装,这样比较方便.卸载的话也是一句话,可以大大减少安装时间: 先将INF文件 ...
- Autorun.inf文件(2):改变硬盘分区图标
改变F盘图标. 原理:在f盘下新建一个Autorun.inf文件,文件内容是 [AutoRun]icon=favicon.ico准备名为favicon.ico图标文件,将其放在工程目录里,设计程序将它 ...
- 关于Autorun.inf文件
配置Autorun.inf文件可以使双击磁盘时,自动运行某一应用程序.但是现在只支持CD或者DVD媒体了(以前硬盘也可以) 关于Autorun.inf的组成部分可以参考https://msdn.mic ...
- ATL开发 ActiveX控件的 inf文件模板
ATL开发 ActiveX控件的 inf文件模板
- Inno setup 安装*.inf文件_示例
nno setup 调用*.Inf文件的条目区段名称_示例 首先自己编写一个INF文件来供 Inno setup 进行测试: ;复制以下代码到记事本然后另存为123.inf .然后把123.inf文件 ...
- 文件过滤驱动实现目录重定向(一)good
文件过滤驱动拦截的IRP主要包括以下几个:IRP_MJ_CREATE,文件创建操作,文件的任何操作,都是从这里开始的.IRP_MJ_CLEANUP,文件的HANDLE句柄全部关闭会触发这个消息IRP_ ...
随机推荐
- /bin/bash^M: bad interpreter: No such file or dire
在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识. 查看脚本文件是dos格式还是unix格式的几种办 ...
- DJANGO中,用QJUERY的AJAX的json返回中文乱码的解决办法
和网上其它用JAVA或是PHP的实现不太一样, DJANGO中的解决办法如下: 后端样例: def render_to_json_response(context, **response_kwargs ...
- Android 程序运行之后,禁止休眠
在程序中添加 // 禁止休眠功能 getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager. ...
- My_Plan part1 小结
数位DP AC十道题目以上 成就达成 八月份!三个月!想想就令人兴奋呢 开始写总结啦 貌似简单的数位DP只需要改改模板就可以啦 就按照我的做题顺序开始总结吧 先是学习了一发模板:http://www. ...
- Project Euler 96:Su Doku 数独
Su Doku Su Doku (Japanese meaning number place) is the name given to a popular puzzle concept. Its o ...
- 【Linux高频命令专题(20)】du
概述 显示每个文件和目录的磁盘使用空间. 命令格式 du [选项][文件] 文件缺省就代表当前目录大小 参数 -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大小时,以b ...
- ios开发图片点击放大
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...
- Android:界面设计工具DroidDraw
DroidDraw是款强大的安卓界面设计软件,基于Java Swing开发,可以通过它拖动控件.设置层属性.设置颜色等步骤轻松地生成复杂的安卓XML布局文件. >>>>> ...
- 如何将phantomjs单独部署在服务端
如何将phantomjs单独部署在服务端 文章目录 一. 容我分析(lao dao)几句 二. 服务端 Look here 服务端phantomjs搭建 web端搭建及如何调用phantomjs 三. ...
- android休眠唤醒流程2
android系统一段时间没有操作, 屏幕(screen)将从高亮(bright)变为暗淡(dim),如果再过段时间还是没有操作,屏幕(screen)从暗淡(dim)变为关闭(off).这时,系 ...