经验交流:高手深入解析Win7设备驱动管理经验交流:高手深入解析Win7设备驱动管理(2)
windows 7由于系统较新, 其中的一些功能和优化设置还在不断完善和建设中,最后是否能够对硬件提供良好的支持,是Windows7面临的一个严峻考验,同时也是用户是否选择Windows 7的一个重要指标。所谓的硬件支持,说到底就是设备的驱动问题。Windows7在硬件的驱动方面有哪些新的特性?如何在Windows7中进行驱动故障排错?我想这都是用户所关系的问题,笔者将结合自己的Windows7使用体验及其自己的理解,就Windows7的设备驱动问题进行一个比较深入的解析,希望对大家有所帮助。1、Windows 7的设备驱动文件解读
在Windows7中包含了一个覆盖范围很广的身边驱动程序库。在该操作系统的基本安装中,这些驱动程序都会保存在驱动程序存储区中,它们位于%SystemRoot%System32DriverStoreFileRepository目录下。另外,在DriverStore文件夹中还保存了对应本地化后的驱动程序信息的子文件夹,对于在系统上配置的每个语种,在这里都有一个对于的子文件夹。例如,笔者安装的是Windows7的英文版,有关本地化的英语驱动程序信息就位于en-us子文件夹中。
在驱动程序存储区中,每个设备驱动程序都经过了认证,并确保可以与Windows7系统完全兼容,通过还带有微软的数字签名,这可以确保驱动程序在操作系统中绝对可用。在安装新的兼容性即插即用设备时,Windows7会在驱动程序存储区中检查可用的兼容设备驱动程序。如果找到,则操作系统就会自动安装该设备。
每个设备驱动程序都有一个相关联的安装信息文件,该文件以.inf作为扩展名,其中包含了关于正在安装的设备的详细配置信息。另外,还有信息文件标识出的每个驱动程序要使用的所有源文件,这些文件以.sys为扩展名。驱动程序还与组件清单文件相关联,清单文件使用可扩展标记语言编写,其中包含了有关驱动程序数字签名的详细信息,并且还可能包含对自身进行配置,以便自动使用该设备的即插即用信息。
Windows7系统安装的每个驱动程序的源文件.sys都会保存在%SystemRoot%System32Dirvers目录下。在安装新的设备驱动程序时,该驱动程序会被写入%SystemRoot%System32Dirvers的子文件夹中,并且会有配置信息保存在注册表中。驱动程序的.inf文件可用于控制安装和要写入注册表的设置信息。如果所需要驱动程序没用保存在驱动程序存储区中,或者没用.inf文件,或缺少其他有个的系统文件,这种情况下,驱动程序的.inf文件和其他相关的文件在安装设备时会被写入到%SystemRoot%System32DriverStoreFileRepository下的子文件夹中。
2、应当重视的Windows 7设备驱动签名信息
对于Windows7来说,能否对周边设备提供良好的支持是其面临的严峻挑战。毫无例外地,为了保证系统的稳定性及设备的良好运行,微软建议用户选择包含数字签名是设备驱动程序版本。这对于用户来说非常重要,因为Windows7毕竟是一个新的系统平台,各方面有待于进一步的检验或者考验,而这一般为不少用户所忽略。带有微软数字签名的设备驱动程序不会让系统崩溃或者变得不稳定,同时带有微软数字签名还可以确保设备驱动程序未被篡改,这能够杜绝驱动级木马危害系统。
反之,如果用户强制使用没有数字签名的驱动程序,则很有可能导致Windows7的不响应或者崩溃,这甚至比在操作系统上安装普通程序导致的问题更加严重。笔者曾经有这样的体验,另外论坛中这样的因为驱动造成Windows7崩溃的案例也非常多。因此,对于Windows7用户来说建议尽量使用经过签名的驱动程序。当然,在某些情况下,我们可能会发现特定是设备不包含签名的驱动程序。此时,建议大家在设备制造商是网站上搜索是否有可用的带有签名的驱动程序。因为有时可能有带有签名的驱动程序,但并没有包含到设备的的驱动光盘或者Windows7的安装盘中。
如果没有可用的带有签名的驱动程序,那么只能使用未签名的驱动程序。在Windows7中,如果安装未签名的驱动程序,一定要小心谨慎,并对系统进行密切监控。如果发现系统遇到未知的不响应或者崩溃,这就可能是未签名的驱动程序导致的,这时需要回滚驱动程序或卸载有问题的驱动程序。同时需要注意,任何类型的设备,即使是显卡、网卡或者声卡,如果对应的驱动程序有问题,都可能会导致操作系统遇到问题。有时候,为了防止未签名的驱动程序导致更严重的问题,在默认情况下,当我们尝试安装未签名的驱动程序时,Windows7会发出警告。当然,我们也可配置以取消该警告,或者完全禁止安装未签名的驱动程序。
3、Windows 7驱动文件排错
当硬件的驱动安装错误后,不仅不能够驱动该设备,而且会有可能造成系统的不稳定甚至崩溃。Windows7内置的硬件诊断功能可以检测各种类型的硬件设备故障,从而据此可进行驱动文件的排错。通常情况下,如果系统检测到问题,那么我们将会看到一个问题报告和解决方案提示的气泡通知。单击该气泡通知即可打开问题报告和解决方案控制台。另外,我们也可以在Windows7的控制面板中单击“系统和维护”链接,并单击“问题报告和解决方案”打开该控制台。在问题报告和解决方案窗口中,单击“查看问题以检查”链接以查看现有的问题,或单击“检查解决方案”链接,从微软网站上搜索已知问题的可能解决方案。
另外,我们还可以按照下列步骤直接对设备驱动进行排错:打开设备管理器,选择“设备管理器”节点,用鼠标右键单击要排错的设备,选择“属性”,在“常规”选项卡上单击“检查解决方案”,单击“查看详细信息”选项,了解有关问题的更多信息。当然,我们也可以将该问题发送给微软寻求解决方案,只需单击“发送信息”即可。需要注意的是,如果身边驱动程序安装不正确,那么就不会有“检查解决方案”选项,而是只有“重新安装设备驱动”选项。此外,当设备安装不正确或有问题时,设备管理器会显示警告图标,表示该设备出现问题。如果双击该设备,在设备的属性对话框的“常规”选项卡中还会显示相关错误代码,我们可以从微软的网站上查看相关的参考文档进行排错。比如错误代码16,表示Windows无法识别该设备使用的所有资源。解决方法是:检查该设备是否带有签名的可用驱动程序。如果有,并且已经安装,可能需要管理该设备的资源,在设备属性对话框的“资源”选项卡下进行设置。
4、设备驱动造成的资源冲突排错
有的时候,当我们在Windows7中安装了某设备的驱动文件后会显示资源冲突,那如何进行排错呢?Windows7的智能特性让我们进行这方面的排错非常容易。如果怀疑是某设备造成了资源冲突,可在Windows7的设备管理器中,单击“查看”菜单选择其中的“依类型排序资源”或“依连接排序资源”视图,即可快速查看资源的分配,在此我们可以看到ISA和PCI设备使用IRQ的情况。一般情况下每个ISA设备都有独立的IRQ设置,而多个PCI设备共享相同的IRQ设置。笔者特别提示,如果某些设备显示警告图标,同时还有感叹号,这并不是资源冲突,应该是设备配置错误。
另外一种查看是否存在资源冲突的方法是,提醒大家使用Windows7的系统信息实用程序msinfo32.exe,依次单击“开始”→“所有程序”→“附件”→“系统工具”→“系统信息”即可启动该工具,在系统信息窗口中,展开“硬件资源”,然后单击“冲突/共享”即可列出所有使用的资源。
需要注意的是,在Windows系统中,设备可以共享IRQ设置,因此两个不相关当共用了同样内存地址或I/Q端口的设备,这些设备之间通常存在冲突。确定了资源冲突的双方,我们就可以在设备管理器中手动修改某些设备的资源设置。打开该设备是属性对话框,在“资源”选项卡中选择需要使用的资源类型。如果可以更改,那么就可以取消对“使用自动设置”的选择,然后查看设置基于下拉列表中是否提供候补的配置,如果有选择该项即可解决冲突。
5、不得不说的Device Stage技术
DeviceStage技术是Windows7新增加的一个设备解决方案,其主要针对的诸如打印机、摄像机、手机、媒体播放机等外围设备,我们可以将其看成是一个增强版的即插即用技术。有了DeviceStage技术,用户就比较方便地设置和使用各种外设。依次点击“开始”→“设备和打印”进入Windows7的设备管理中心,在该界面中就列出了当前系统中安装的所有外围设备。如图所示,显示了本地系统安装了打印机、无线耳机等设备。该该界面中我们可以方便地对于相应的硬件进行配置。值得一说的是,在Windows7的设备管理中心显示了各类设备的图标。
有的时候当我们安装了不是针对Windows7开发的设备驱动程序,此时会可能显示系统默认的图标,如果安装的是专门针对Windows7开发的驱动程序就会显示该设备对于的图标,同时Windows7通过DeviceStage技术也会读出该设备的详细信息。