在工控机安装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驱动程序了。