计算机系统硬件设备自动检测的方法

文档序号:6536141阅读:356来源:国知局
专利名称:计算机系统硬件设备自动检测的方法
技术领域
本发明涉及一种计算机系统硬件设备自动检测的方法,特别是指一种通过在计算机系统中嵌入代理模块,检测、监控计算机系统硬件的装入、运行状态,并根据该状态自动完成对计算机系统硬件设备的维护及其驱动程序的安装、修复、升级等操作的方法,属于计算机系统检测技术领域。
背景技术
随着计算机系统技术的日益发展,越来越多的硬件设备被连接到计算机系统之中。要想使得这些硬件设备能够正常地工作,首先,必须保证这些硬件设备本身是正常的,其次,为之安装正确的硬件设备驱动程序。但是,当用户遇到一些故障时,一般很难判断故障的原因是由于硬件本身出现了故障,还是硬件设备的驱动程序出现了故障。即使用户能够判断出硬件设备本身没有问题,用户想要解决硬件设备驱动程序方面的问题也是非常困难的。这是因为对于不同的硬件设备,需要相应的硬件设备制造商提供的与这个硬件设备相匹配的硬件设备驱动程序才能工作,不同的硬件设备需要不同的硬件设备驱动程序;同一种硬件设备在不同的操作系统中或不同版本的操作系统中,都需要不同的硬件设备驱动程序来适配。这就给用户对所使用的计算机系统进行的管理带来了巨大的麻烦。如今还没有一种很有效的方法来全面地解决计算机系统硬件设备管理与维护中的所有问题。以下是计算机系统用户在使用计算机系统的过程中经常会遇到的问题1、当硬件设备不能正常工作时,用户无法判断不能正常工作的原因是硬件本身的故障导致的,还是硬件设备驱动程序的故障导致的。
2、当外围硬件设备与计算机系统被一同购买时,计算机系统厂商负责为用户安装所有的硬件设备驱动程序;但当用户自己购买外围硬件设备时,在安装时,用户则会被操作系统提示安装相应的硬件设备驱动程序。对于普通用户而言,正确地识别合适的硬件设备驱动程序,并为操作系统指定正确的硬件设备驱动程序安装源是一件困难的事情。
3、当用户丢失了硬件的硬件设备驱动程序安装源(可能是计算机系统厂商或者硬件设备厂商提供的硬件设备驱动程序光盘)之后,就无法正确地为计算机系统安装硬件设备驱动程序或对相应的硬件做出设置。
4、虽然每个硬件厂商都有可能在互联网上提供硬件设备驱动程序,以供下载。但普通用户很难准确地为自己的计算机系统中的硬件设备找到合适的硬件设备驱动程序。而且,每个厂商提供的可下载的硬件设备驱动程序位于不同的地方,用户需要记忆众多的网络地址,需要适应不同的网络交互方式,这些对于普通的计算机系统用户来说这样的方式很不方便。
5、硬件设备制造商经常通过光盘或者网络发布某个硬件设备硬件设备驱动程序的升级版本来解决旧版本中存在的问题。而普通用户很难获得更新的信息,即使知道存在新版本的硬件设备驱动程序,也缺乏相应的知识来顺利完成硬件设备驱动程序的升级工作。
6、对于个人计算机系统(PC)制造商和硬件设备制造商来说要想为所有的客户提供硬件设备驱动程序网络下载服务,就需要将所有版本的硬件设备驱动程序按照一定的规则放置在网络中,供新老用户下载使用。这样的方式给PC制造商和外部硬件设备制造商增加了管理与维护的成本。
7、对于PC制造商和硬件设备制造商来说,硬件设备驱动程序的故障位于用户常见的计算机系统问题之首,PC制造商和硬件设备制造商为解决用户的硬件设备驱动程序故障而付出了高昂的费用,他们希望能够采用一种更加智能化的方式来解决硬件设备驱动程序故障,以此来降低对用户提供技术支持的成本。
8、在企业应用环境中,网络管理员必须手工地为每台计算机系统维护一个硬件设备驱动程序库,这样做的代价是维护工作量很大,维护成本高,而维护的效率很低。

发明内容
本发明的第一个目的是提供一种计算机系统硬件设备自动检测的方法,无需用户自行判断计算机系统的故障就可以方便地对计算机系统故障进行排除,使计算机系统用户可以无忧地使用自己的计算机系统。
本发明的第二个目的是提供一种计算机系统硬件设备自动检测的方法,可以自动地对计算机系统用户新购外围硬件设备进行检测并安装相应的驱动软件,计算机系统用户无需为安装计算机系统外围硬件设备的硬件设备驱动程序而为难。
本发明的第三个目的是提供一种计算机系统硬件设备自动检测的方法,计算机系统用户无需再保留各种各样的硬件设备驱动程序安装源,也无需记忆大量的存储有硬件设备驱动程序的网络地址,就可以方便、正确地为自己的计算机系统安装合适的硬件设备驱动程序或对相应的硬件设备驱动程序进行升级。
本发明的第四个目的是提供一种计算机系统硬件设备自动检测的方法,可以采用智能化的方式来修复计算机系统用户的硬件设备驱动程序故障,PC制造商和硬件设备制造商也无需将所有版本的硬件设备驱动程序放置在网络中并维护之,使PC制造商和外部硬件设备制造商能高效地为用户提供技术支持和服务的同时,大幅度地降低相应的成本。
本发明的第五个目的是提供一种计算机系统硬件设备自动检测的方法,在企业应用环境中,网络管理员再也不必手工维护每一台计算机系统的硬件设备驱动程序库,降低网络管理员的劳动强度,提高网络管理的工作效率,减少网络维护的成本。
为了实现本发明的目的,需要在计算机系统中设置一硬件设备自动检测的代理模块,代理模块检测计算机系统中的所有硬件设备,并对这些硬件设备的驱动程序进行维护管理操作;具体包括代理模块在计算机系统运行期间,实时地检测硬件设备,当发现硬件设备出现异常时,代理模块自动对所述的硬件设备进行诊断;如果所述硬件设备本身存在故障,上述的代理模块通过设定的方式发出硬件设备的故障报告;如果硬件设备本身没有故障,上述的代理模块自动地诊断硬件设备驱动程序的状态,并根据硬件设备驱动程序的状态对所述硬件设备驱动程序进行自动安装、修复或更新。
为了确定上述的计算机系统中硬件设备的驱动程序是否安装,本发明的代理模块对当前硬件设备的驱动程序进行自动检测,如果尚未安装,则代理模块自动从指定的存储空间中寻找相应的硬件设备驱动程序;如果指定的存储空间中保存有相应的硬件设备驱动程序,则将该硬件设备驱动程序下载或者复制到目标计算机系统中一存储位置并自动安装被下载或复制的硬件设备驱动程序。
这里所述的指定的存储空间是所述计算机系统本地磁盘中的一文件目录,或者是计算机系统本地磁盘的保护分区,或者是一与所述计算机系统连接的外部存储硬件设备,或者是可被所述计算机系统访问的远程计算机系统、服务器或服务器群中的存储空间。无论将硬件设备驱动程序保存在上述的任何位置,代理模块都可以对相应的存储空间进行访问,获取该硬件设备驱动程序。
为了保持计算机系统中的所有硬件设备驱动程序都能够保持最新和最好的状态,代理模块按照设定的期限,定期到指定的服务器查询有没有更新版本的硬件设备驱动程序,一旦发现存在更新版本的硬件设备驱动程序,则自动将更新版本的硬件设备驱动程序下载到其所在的计算机系统中,并进行升级安装。本发明对来自于不同计算机系统的硬件设备驱动程序按照不重复的原则进行存储,对于相同操作系统下、同一语言版本、同一型号硬件设备的硬件设备驱动程序,只保留最新版本。
为了使代理模块能有效地对计算机系统的硬件设备进行检测,该代理模块被设置在所述计算机系统的基本输入输出系统(Basic Input OutputSystem,简称BIOS)或者可扩展固件界面(Extensible FirmwareInterface,简称EFI)中,并且,当计算机系统运行时启动该代理模块。或者将该代理模块安装在主操作系统中,并且,伴随主操作系统的运行而自动运行之。
为了更好地实现本发明的目的,当本发明的计算机系统连接到一计算机网络(该网络可以是局域网,也可以是互联网)时,所述网络中一个或者多个服务器,可以被设定为上述指定的存储空间,所有计算机系统中的代理模块在复制或下载硬件驱动程序时,都可以访问该指定的存储空间。另外,连接到网络中的计算机系统的代理模块在复制或下载硬件驱动程序时还可以与其他连接到网络中的计算机系统的代理模块进行通信,以复制或下载硬件驱动程序。这样做,可以增加本发明的应用灵活性。
综上所述,本发明提供的方法,相比于现有技术具有如下的优点1、由于在计算机系统中安装代理模块,并由该代理模块自动完成对计算机系统硬件设备驱动程序的检测、修复等操作,计算机系统的使用者无需再自行判断计算机系统的故障,因此可以方便地对计算机系统故障进行排除,使计算机系统使用者可以无忧地使用自己的计算机系统。
2、上述的代理模块在完成自动检测、修复的基础上,还可以自动地对计算机系统用户新购外围硬件设备进行检测并安装相应的驱动软件,因此,计算机系统用户无需为安装计算机系统外围硬件设备的硬件设备驱动程序而为难。使得计算机系统外围硬件设备的安装变得非常简单。
3、由于本发明可以将硬件设备驱动程序复制到计算机系统中的指定位置,计算机系统用户也就无需再保留各种各样的硬件设备的驱动程序安装源,也无需记忆大量的存储有硬件设备驱动程序的网络地址,同样可以方便、正确地为自己的计算机系统安装合适的硬件设备驱动程序,或者对相应的硬件设备驱动程序进行升级。
4、由于本发明中采用了代理模块以智能化的方式修复计算机系统的硬件设备驱动程序故障,因此,PC制造商和硬件设备制造商只需将所有版本的硬件设备驱动程序放置在网络中,而不必投入人力、物力对其进行维护,使得PC制造商和外部硬件设备制造商能高效地为用户提供技术支持和服务的同时,大幅度地降低了相应的成本。
5、本发明在企业应用环境中,使得网络管理员再也不必手工地维护每一台计算机系统的硬件设备驱动程序库,网络中所有的终端都安装了上述的代理模块后,都可以自动地对其所在的计算机系统的硬件设备驱动程序检测、安装、修复、更新;因此,大大降低了网络管理人员的劳动强度,提高了网络管理的工作效率,减少了网络维护的成本。
本发明所提供的方法可以很好地对计算机系统的各种硬件设备在其生命周期内进行管理与维护,可以自动地介入到几乎所有的硬件设备管理与维护核心过程。对于终端用户来说,利用本发明,任何情况下均可以实现对硬件设备和硬件设备驱动程序的自动化管理与维护。对于企业IT管理员或者PC制造商来说,本发明所提供的方法可以极大地简化硬件设备驱动程序故障的用户支持成本,提高硬件设备管理和维护的服务效率。对于硬件设备制造商来说,利用本发明所提供的方法可以很好地跟踪和分析硬件设备驱动程序的问题,并且能够通过收集到的大量数据,分析和总结硬件设备驱动程序中可能存在的问题和兼容性问题,从而可以快速地为用户提供更新版本的硬件设备驱动程序。


图1为本发明实现的系统构架示意图;
图2为本发明备份驱动程序流程示意图;图3为本发明驱动程序恢复流程示意图;图4为本发明驱动程序安装流程示意图;图5为本发明驱动程序升级流程示意图;图6为本发明硬件设备诊断的流程示意图;图7为本发明诊断驱动程序故障并修复驱动程序故障流程示意图。
具体实施例方式
以下结合附图和具体的实施例对本发明作进一步的详细说明参见图1,本发明可以在如图1所示的系统构架下运行,该系统构架中包括位于Internet上的备份服务器1,该备份服务器1通过Internet和企业局域网中的局域网备份服务器2连接通信,同时和位于Internet上的客户机11、12连接通信;局域网备份服务器2则通过局域网与局域网内部的客户机21、22连接通信。本发明则基于上述的系统构架实现。具体的一个实例如下本发明包含以下几个处理1、自动安装硬件设备驱动程序;2、自动备份和恢复硬件设备驱动程序;3、自动升级硬件设备驱动程序4、自动诊断并判断硬件设备本身是否存在故障;5、自动检测硬件设备驱动程序的故障并自动修复之。
上述几个处理过程,可以彻底解决计算机系统用户经常遇到的计算机系统硬件设备方面的故障,并提高计算机系统的自我故障诊断与自动修复的能力,降低用户支持成本,提高用户使用计算机系统的效率。
上述的内容可以看作是一种计算机系统硬件设备生命周期管理与维护的方法,首先需要在计算机系统中安装一个硬件设备管理与维护的代理模块-代理模块。参见图2,代理模块运行后,开始检测当前连接到计算机系统中的所有硬件设备,然后,将每种硬件设备的硬件设备驱动程序从系统中抽取出来,并且复制到指定的存储空间。对于上述代理模块的操作,还可以细分为两种情况1)参见图2,当第一次安装了代理模块之后,代理模块自动检测当前计算机系统中所有的硬件设备,并且将每种硬件设备的硬件设备驱动程序从系统中抽取出来,复制到指定的存储空间。
2)参见图2、图3,当代理模块发现用户安装了新的硬件设备驱动程序之后,自动的将新安装的硬件设备驱动程序复制到指定的存储空间。在复制之前,代理模块首先查询指定位置是否已经存在同样版本的硬件设备驱动程序,如果存在,则不进行复制,如果不存在,则进行复制。
代理模块自动检测当前硬件设备驱动程序的状态,一旦发现某个硬件设备驱动程序尚未安装硬件设备驱动程序,则自动从指定的存储空间查询对应的硬件设备驱动程序,一旦发现存在指定的硬件设备驱动程序,则下载或者复制到本地的某个存储位置,然后代理模块开始自动安装这个硬件设备驱动程序。
参见图4、图6,代理模块还可以被设定实时监控硬件设备的工作状态,当发现硬件设备出现异常时,代理模块首先启动硬件设备诊断程序,如果发现硬件设备本身存在故障,则通过指定的方式报告给远程的计算机系统维护人员或者本地的计算机系统用户。
如果诊断结果是硬件设备本身不存在故障,则代理模块进一步诊断硬件设备驱动程序状态,如果发现硬件设备驱动程序存在故障,则自动寻找曾经复制的硬件设备驱动程序,并且自动下载或者复制到目标计算机系统的某个位置。代理模块通过下载或者复制到指定位置的硬件设备驱动程序来修复相应的硬件设备驱动程序故障。
参见图5,代理模块可以被设定定期地到指定的服务器查询有没有更新版本的硬件设备驱动程序,一旦发现存在更新版本的硬件设备驱动程序,则自动将更新版本的硬件设备驱动程序下载到目标计算机系统进行升级安装。
上述的代理模块可以通过可存储媒质的外界媒介,网络下载等方式进行安装。而且,安装的位置可以是在BIOS或者EFI中,也可以安装在当前计算机系统的主操作系统或者副操作系统当中。
代理程序检测当前连接到计算机系统中的所有硬件设备的方法是扫描当前计算机系统中的系统总线,获得硬件设备的ID信息;使用这些硬件设备的ID信息与当前主操作系统中的硬件设备管理信息库中所记录的相应信息进行对比,从而找到硬件设备ID信息所对应的硬件设备驱动程序信息文件位置。通过分析这个硬件设备驱动程序信息文件,找出这个硬件设备驱动程序中所有相关的文件。代理模块将上述所有相关的文件复制到指定的存储空间。
上述的指定的存储空间可以是计算机系统的某个目录,或者计算机系统本地磁盘的保护分区,也可以是某个外部存储设备,如USB存储器等。另外,指定的存储空间还可以是位于网络中的可以被上述计算机系统访问的远程计算机系统或者服务器(包括服务器群)。远程计算机系统或者服务器可以保存当前计算机系统中的硬件设备驱动程序。上述网络可以是一个局域网(如一个企业内部的网络),还可以是位于Internet上的可由代理模块访问的某个计算机系统或者服务器(包括服务器群)。
如果指定的存储空间是位于网络中的可以被当前计算机系统访问的远程计算机系统或者服务器(包括服务器群),则该指定的存储空间应当可以同时支持多个不同的计算机系统的硬件设备驱动程序复制存储。远程计算机系统或者服务器(包括服务器群)能够将来自于不同计算机系统的不同硬件设备驱动程序有效地组织在一起,并且按照不重复的原则进行存储。这个不重复的原则可以按照硬件设备的ID信息、硬件设备驱动程序的版本、该硬件设备驱动程序对应的操作系统版本、语言等多个条件来综合决定。
位于网络中的远程计算机系统或者服务器(包括服务器群)可以允许任意一台计算机系统下载不是自己复制的硬件设备驱动程序;也就是说任意一台计算机系统复制到这个远程计算机系统或者服务器中的硬件设备驱动程序可以被其他任何一台计算机系统所下载并使用;任意一台计算机系统也可以从这个远程计算机系统或者服务器中下载由其他计算机系统上载的硬件设备驱动程序。首要的前提是下载的硬件设备驱动程序一定是能够正常工作于相应的计算机系统中。
上述指定的存储空间如果位于网络中的远程计算机系统或者服务器,则远程计算机系统或者服务器可以通过级连的方式形成多级的网络环境。例如在企业内部局域网中,可以存在一台或者多台计算机系统或者服务器,用于复制企业内部局域网中所有的硬件设备驱动程序。当该企业又购买了一个新的硬件设备,而没有新硬件设备的硬件设备驱动程序时,该企业内部局域网中的服务器可以通过更上一级的服务器(这个服务器可以位于Internet中)中查询这个新硬件设备对应的硬件设备驱动程序,如果上一级服务器中存在同样硬件设备,该硬件设备的驱动程序就是上述计算机系统中心增加的硬件设备驱动程序,则企业内部网络服务器就可以从上一级服务器将硬件设备驱动程序下载到企业内部网络服务器上,然后由计算机系统下载到本地进行安装。
参见图7,本发明对硬件设备驱动程序的复制是指一种优化的复制方式,在复制之前,代理模块向复制的目标位置查询当前的存储空间中是否已经存在相同的内容,如存在,则不进行复制,否则,进行复制。这种优化的复制方式是按照硬件设备ID和其对应的主操作系统版本、语言版本等综合条件来决定的。这些综合条件由可以一个或者多个规则组合使用,具体可以由实施者根据操作系统手册或者计算机系统说明书自行确定。
本发明还对硬件设备ID信息、操作系统的版本、语言信息进行复制。这里的首先指定位于网络中的服务器为优先复制的指定空间。这种情况下,网络服务器的管理人员一旦发现计算机系统中存在未知的硬件设备,而这个硬件设备的硬件设备驱动程序在整个服务器中都不存在。网络服务器管理人员就可以采用通过手工的方式为这个未知硬件设备添加进去一个合适的硬件设备驱动程序。当这个合适的硬件设备驱动程序被添加完成之后,服务器系统就可以自动地根据服务器中包含的计算机系统的数据,自动地将硬件设备更新的消息发送到指定的计算机系统的代理模块。这个代理模块便可以再次登录到服务器上,下载这个硬件设备的硬件设备驱动程序。
本发明还可以将计算机系统中的硬件设备驱动程序基本信息复制到网络中的服务器,而不具体复制硬件设备驱动程序的内容和文件。这里所述的基本信息可以包含硬件设备的ID信息、硬件设备驱动程序版本信息、该硬件设备驱动程序适应的主操作系统版本信息、语言信息等。同时,这些基本信息中还可能包含这个计算机系统上代理模块的唯一的识别编码信息和当前安装了这个代理模块的计算机系统的IP地址信息。
本发明中,自动检测当前硬件设备驱动程序状态是通过扫描当前计算机系统中的系统总线获得所有硬件设备的ID信息,并且与当前主操作系统的硬件设备管理信息库进行比较,从而找出没有安装硬件设备驱动程序的硬件设备。
本发明中到指定的存储空间查询硬件设备驱动程序是否存在的过程是指通过硬件设备ID信息、当前主操作系统版本、语言等综合条件来查询。这些综合条件可以由一个或者多个规则组合使用,具体可以由实施者根据操作系统手册或计算机系统说明书自行确定。
当指定的存储空间是网络中的远程计算机系统或者服务器(包括服务器群)时,计算机系统的代理模块会通过特定的查询条件(这个特定的条件由计算机系统的用户自行设定,并存储在该计算机系统中)来询问远程计算机系统或者服务器中是否包含指定的硬件设备驱动程序,如果有,则下载,并由代理模块进行自动安装。
本发明指定的存储空间如果是网络中的远程计算机系统或者服务器(包括服务器群),并且这个远程计算机系统或者服务器中仅仅包含指定硬件设备驱动程序的基本信息,则代理模块可通过服务器中包含的IP地址信息找到拥有这个硬件设备驱动程序的计算机系统的位置。符合这个条件的计算机系统可以是多个。此时,代理模块可以向这些符合条件的且能够被当前计算机系统访问的任一台或者多台远程计算机系统发出请求,安装在这些计算机系统上的代理模块获得请求之后,根据预先的设定的策略对其进行响应。如果被请求的计算机系统的用户同意共享其硬件设备驱动程序,则上述的代理模块可以向这个计算机系统收集并下载硬件设备驱动程序到本地进行安装。
本发明查询更新版本的硬件设备驱动程序是通过将本地硬件设备驱动程序的版本和远程服务器中的硬件设备驱动程序版本进行对比实现的,这样可以获得有无更新硬件设备驱动程序的信息。如果存在新版本的硬件设备驱动程序,则代理模块会自动下载到目标计算机系统中进行安装,同时会将新版本的硬件设备驱动程序复制到指定的存储空间。而位于服务器中的硬件设备驱动程序可以是由硬件设备制造商或者PC制造商添加或更新进去,也可以由企业IT管理员添加到服务器中。
本发明的代理模块可以实时地监控硬件设备的工作状态,其通过扫描主操作系统的硬件设备管理库,获得当前硬件设备驱动程序的工作状态。这个状态可以包括硬件设备驱动程序是否正常、硬件设备是否被禁用等多种信息。具体的故障种类和计算机系统使用的主操作系统相关,其错误呈现的方式由主操作系统决定。因此,需要参照有关的操作系统和计算机系统的使用手册来具体确定。
对硬件设备诊断是一个对硬件设备各个部件模块工作状态和性能的诊断,可以通过一现有的诊断程序实现,针对每种硬件设备可以提供不同的诊断过程和诊断方式,但这些诊断程序均必须能够获知硬件设备本身是否正常运行。
当代理模块发现硬件设备存在故障时,一般不采用硬件设备驱动程序修复来解决问题,因为即使修复了硬件设备驱动程序,硬件设备的物理故障依然存在,从而使得硬件设备还是不能工作。只有确认硬件设备物理状态良好的情况下才可以进一步诊断并修复故障。而当发现硬件设备驱动程序存在故障时,代理模块就可以通过复制在指定的存储空间中的硬件设备驱动程序予以修复。
以WINDOWS操作系统为例,在本发明的一实施例中,代理模块可以被分为几个不同的执行单元,可以将部分执行单元安装在BIOS或者EFI之中,将部分执行单元安装在主操作系统环境中,并且伴随操作系统自动运行。当然,也可以将上述代理模块做为一个整体,设置或者安装在BIOS或者EFI之中。另外,也可以通过网络将代理模块自动地下载到计算机系统,并使之在硬盘上或者直接在内存中执行。
当代理模块在计算机系统中安装完毕,并且启动执行时,代理模块开始扫描该计算机系统的系统总线,获得所有硬件设备识别(ID)信息。并用获得的硬件设备ID信息逐个的与Windows操作系统的注册表中指定的存储空间(此位置用于记录当前计算机系统中被检测到的硬件设备信息以及对应的硬件设备驱动程序的信息文件等)的信息进行比较,从而获得硬件设备ID所对应的硬件设备驱动程序的信息文件的位置和名称。
如果在上述的注册表中没有找到对应的硬件设备驱动程序的信息文件的位置和名称,则表明该硬件设备的硬件设备驱动程序尚未被安装;这时,代理模块则将硬件设备ID信息和主操作系统(WINDOWS)版本信息送到指定的其所在网络中的服务器上,该服务器利用这些基本信息,查询该服务器中所备份的所有硬件设备驱动程序中是否存在与上述硬件设备ID信息对应的硬件设备驱动程序;如果存在,则进行硬件设备驱动程序的修复。如果不存在,则该服务器将这些信息登记到服务器的数据库中,服务器管理人员(可以是企业IT管理员,或者是硬件设备制造商或者PC制造商等)可以通过查询这些未知信息的基本信息,并为其手工添加合适的硬件设备驱动程序,并通知计算机系统代理模块,使之能够再次向服务器查询并下载这个被添加进去的硬件设备驱动程序,从而解决硬件设备驱动程序的安装问题。
如果该硬件设备ID信息对应的硬件设备驱动程序已经被正确安装到当前主操作系统(WINDOWS)中,代理模块通过分析找到的硬件设备驱动程序信息文件,从中找到此硬件设备的制造商信息和版本信息,还可以从中找到对应于该硬件设备的所有驱动文件,其中可能包含硬件设备驱动程序的数字签名文件等。代理模块同时会检测当前主操作系统(WINDOWS)的版本信息(其中包含主、次版本信息),语言信息等。代理模块将主操作系统的信息和硬件设备ID信息和硬件设备驱动程序相关信息一起送到指定的存储空间。这个指定的存储空间可以是在计算机系统上,也可以是位于局域网或者Internet环境中的一台或多台计算机系统中,或者位于服务器或由多台服务器组成的服务器系统之中。当服务器系统接受到来自计算机系统代理模块送来的多种信息后,服务器系统使用这些信息来查询服务器中是否已经存在相同的硬件设备驱动程序,并且将查询的结果告知计算机系统上的代理模块。如果服务器中已经存在相应的硬件设备驱动程序,则代理模块将忽略这个硬件设备驱动程序。如果不存在,代理模块则将与该硬件设备相关的硬件设备驱动程序文件、相应的操作系统信息和硬件设备ID信息等复制到服务器上。上述的处理过程可以重复执行,直到计算机系统中所有的硬件设备驱动程序都被正确地复制到指定的存储空间为止。
代理模块在运行时,首先会检测当前主操作系统中有哪些尚未安装硬件设备驱动程序的硬件设备,并且用硬件设备ID信息和操作系统环境信息向指定位置的服务器查询是否存在匹配的硬件设备驱动程序。如果存在,则计算机系统中的代理模块会将这个硬件设备驱动程序下载到计算机系统本地,并进行安装。如果不存在,则上述的代理模块不进行安装。此刻,代理模块同样会将这个未知硬件设备的基本信息和操作系统环境信息登记到服务器中,以便服务器的管理人员能够通过手工的方式为之添加合适的硬件设备驱动程序,或者等到其他的计算机系统在某个时刻将完全一致的硬件设备驱动程序复制到服务器时,存在未知硬件设备的计算机系统就可以在此之后通过该计算机系统中的代理模块再次进行恢复操作。
代理模块从指定的存储空间读取硬件设备驱动程序的信息文件,并且调用Windows的硬件设备安装库来安装指定的硬件设备驱动程序。代理模块还要根据Windows硬件设备安装库的返回结果判断硬件设备驱动程序是否被正常安装。此刻代理模块会将硬件设备ID信息和硬件设备驱动程序信息文件中所记录的版本信息等和硬件设备制造商的信息以及操作系统的环境信息一起发送到服务器,同时发送的信息还包括本次硬件设备驱动程序安装失败的错误代码。服务器管理人员可以通过这一代码来了解和分析硬件设备驱动程序安装失败的原因,进一部根据情况将更新的硬件设备驱动程序版本放置在服务器中,以解决计算机系统安装失败的问题。
对于硬件设备制造商和PC制造商来说,通过对服务器中记录的计算机系统硬件设备驱动程序安装失败信息的分析和统计,可以很准确地了解该硬件设备以及硬件设备驱动程序存在哪些问题。代理模块安装硬件设备驱动程序失败后,如果该硬件设备先前一个旧版本的硬件设备驱动程序保存在当前计算机系统中,则代理模块会自动恢复到这个硬件设备的旧版本驱动状态。
通过代理模块实现硬件设备驱动程序更新的一个实例如下代理模块首先检测本地硬件设备驱动程序状态;如果存在没有安装硬件设备驱动程序的硬件设备,进行硬件设备驱动程序的恢复,这个恢复过程如上所述,在此不再赘述。如果某个硬件设备已经安装了硬件设备驱动程序,则代理模块结合硬件设备的ID信息、硬件设备驱动程序的版本信息、硬件设备制造商信息以及当前主操作系统的环境系统,通过这些组合信息查询指定的服务器,服务器根据这些信息来查询当前服务器环境中是否存在更新版本的硬件设备驱动程序。如果存在更新版本的硬件设备驱动程序,则代理模块自动将这个更新版本的硬件设备驱动程序下载到当前的计算机系统,并进行安装。
在对硬件设备进行诊断时,代理模块通过扫描当前计算机系统总线,获得所有硬件设备的ID信息和类型信息(这些硬件设备的类型信息诸如USB闪存盘、CDROM,CPU等),并对这些硬件设备进行诊断,以确定硬件设备有无物理故障。如果发现这些硬件设备有物理故障,则可以通过网络报告给管理员,也可以报告给当前的计算机系统用户。如果诊断的结果是硬件设备没有物理故障,则代理模块对硬件设备驱动程序进行故障诊断,以便确定硬件设备驱动程序是否存在故障。在本实施例中,这个代理模块可以设置在BIOS之中或者EFI之中,也可以由代理模块通过网络(互联网或者局域网)将代理模块安装程序下载到计算机系统的本地硬盘上或者内存中执行、安装。
通过代理模块诊断硬件设备驱动程序故障并修复硬件设备驱动程序故障的一个实例如下代理模块通过扫描当前计算机系统总线,获得计算机系统中所有硬件设备的ID信息。并通过这些ID信息查询操作系统(Windows)的注册表,从中获得硬件设备驱动程序的信息文件所存放的位置。如果注册表中不存在相应的硬件设备驱动程序信息文件,则表示该硬件设备驱动程序尚未安装;代理模块因此进行硬件设备驱动程序的恢复;否则,表示指定的硬件设备驱动程序已经安装。代理模块调用操作系统(Windows)硬件设备管理库,来检测硬件设备驱动程序的工作状态,如果硬件设备驱动程序处于不正常状态。代理模块则根据硬件设备的ID信息、硬件设备驱动程序版本信息、硬件设备制造商信息、操作系统的环境信息等,向网络中的一特定的服务器查询是否存在同样的硬件设备驱动程序;如果存在,代理模块则从该服务器中下载这个硬件设备驱动程序并安装。如果不存在,上述的服务器则会自动在服务器备份的硬件设备驱动程序库中寻找有没有更新的版本,如果有则通知代理模块下载并安装之。如果没有更新的版本,则上述的服务器会将这个硬件设备的ID信息、硬件设备驱动程序信息、操作系统环境信息登记在服务器数据库中,以便服务器管理人员能够利用这些信息来分析问题所在;管理人员可以通过手工方式将新版本的硬件设备驱动程序放置在服务器中,供计算机系统下载并修复硬件设备驱动程序故障。
最后应说明的是以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种计算机系统硬件设备自动检测的方法,其特征在于在计算机系统中设置一硬件设备自动检测的代理模块,并在指定的存储空间保存有所述硬件设备驱动程序;所述代理模块检测所述计算机系统的硬件设备,并对所述硬件设备及其驱动程序进行维护操作;包括所述代理模块在计算机系统运行期间,实时检测硬件设备,当发现硬件设备出现异常时,所述代理模块自动对所述的硬件设备进行诊断;如果所述硬件设备本身存在故障,所述代理模块通过设定的方式发出所述硬件设备的故障报告;如果所述硬件设备本身没有故障,所述代理模块自动诊断所述硬件设备驱动程序的状态,并根据所述硬件设备驱动程序的状态对所述硬件设备驱动程序进行自动安装、修复或更新。
2.根据权利要求1所述的方法,其特征在于所述设定的方式包括将硬件设备的故障信息显示到所述计算机系统的屏幕上,以提示给计算机系统的操作者,和/或将所述硬件设备的故障信息记录到故障报告中,和/或将所述硬件设备的故障信息通过计算机网络发送给网络服务器,和/或将所述硬件设备的故障信息通过互联网发送给所述计算机系统的用户或管理人员。
3.根据权利要求1所述的方法,其特征在于所述代理模块还自动检测当前硬件设备的驱动程序是否被安装,如果尚未安装,则自动从所述指定的存储空间中寻找相应的硬件设备驱动程序;如果所述指定的存储空间中已保存了所述的硬件设备驱动程序,则将所述的硬件设备驱动程序下载或者复制到所述计算机系统的一存储位置,并自动安装被下载或复制的硬件设备驱动程序。
4.根据权利要求3所述的方法,其特征在于所述代理模块自动检测当前硬件设备的驱动程序是否被安装,包括通过扫描当前计算机系统中的系统总线,获得所有硬件设备的识别信息,并且将所述识别信息与所述计算机系统当前主操作系统的硬件设备管理信息库对应的硬件设备信息进行比较,找出没有安装硬件设备驱动程序的硬件设备。
5.根据权利要求1所述的方法,其特征在于所述的维护操作是指所述代理模块检测连接到计算机系统中的所有硬件设备,并将所述硬件设备的驱动程序从所述计算机系统中复制到指定的存储空间。
6.根据权利要求5所述的方法,其特征在于当所述代理模块第一次在所述的计算机系统中运行时,所述代理模块自动检测当前计算机系统中所有的硬件设备,并且将每种硬件设备的硬件设备驱动程序从计算机系统中抽取出来,复制到指定的存储空间;具体包括所述代理模块扫描其所在计算机系统的系统总线,获得与所述系统总线连接的所有硬件设备的识别信息;所述代理模块用所述的识别信息在所述计算机系统的主操作系统的硬件设备管理信息库中查找,找到硬件设备管理信息库中与该识别信息对应的记录信息,并由该记录信息获得所述识别信息所对应的硬件设备驱动程序信息文件位置;所述代理模块分析所述硬件设备驱动程序信息文件,找到与所述硬件设备驱动程序所有相关的文件;所述代理模块将与所述硬件设备驱动程序所有相关的文件复制到所述指定的存储空间。
7.根据权利要求5所述的方法,其特征在于当所述代理模块在所述计算机统中非第一次运行时,一旦发现被检测的计算机系统中安装了新的硬件设备驱动程序,所述代理模块自动的将新安装的硬件设备驱动程序复制到所述指定的存储空间。
8.根据权利要求7所述的方法,其特征在于在复制新安装的硬件设备驱动程序之前,所述代理模块查询所述指定的存储空间是否已经保存有同样版本的硬件设备驱动程序,是,则不进行复制,否则,进行复制。
9.根据权利要求1、3、5-7或8所述的方法,其特征在于所述指定的存储空间是所述计算机系统本地磁盘中的一文件目录,或者是计算机系统本地磁盘的保护分区,或者是一与所述计算机系统连接的外部存储硬件设备,或者是可被所述计算机系统访问的远程计算机系统、服务器或服务器群中的存储空间。
10.根据权利要求9所述的方法,其特征在于当所述硬件设备驱动程序存储在可被所述计算机系统访问的远程计算机系统、服务器或服务器群中的存储空间时,所述代理模块在自动安装该硬件设备驱动程序时,先根据存储在所述计算机系统中的查询条件询问远程计算机系统或者服务器中是否存储有硬件设备驱动程序;是,则将所述硬件设备驱动程序下载到所述计算机系统中,然后进行自动安装。
11.根据权利要求9所述的方法,其特征在于所述远程计算机系统、服务器或服务器群将来自于不同计算机系统的硬件设备驱动程序按照不重复的原则进行存储,即按照所述硬件设备识别信息,所述硬件设备驱动程序的版本,以及所述硬件设备驱动程序所对应的操作系统版本,语言版本确定所述硬件设备驱动程序的存储方式及位置。
12.根据权利要求9所述的方法,其特征在于当有多个指定的存储空间可以被所述代理模块访问时,所述指定的存储空间优先为网络中的服务器。
13.根据权利要求9所述的方法,其特征在于所述的复制是将所述计算机系统中的硬件设备驱动程序的基本信息复制到所述指定的存储空间中,该基本信息包括所述硬件设备的识别信息、该硬件设备驱动程序的版本信息、该硬件设备驱动程序适应的主操作系统版本信息、该硬件设备驱动程序的语言版本信息、所述代理模块的唯一编码信息、所述计算机系统的IP地址信息之一或其任意组合。
14.根据权利要求13所述的方法,其特征在于当所述指定的存储空间中仅保存所述硬件设备驱动程序的基本信息时,所述代理模块则在自动安装该硬件设备驱动程序时,首先,通过服务器中包含的IP地址信息找到保存有所述硬件设备驱动程序的终端;所述代理模块向该终端发送访问请求;所述终端收到所述的请求之后,对所述代理模块进行响应;所述代理模块将所述的硬件驱动硬件设备驱动程序下载到其所在的计算机系统中进行安装。
15.根据权利要求1所述的方法,其特征在于所述更新是指所述代理模块按照设定的期限,定期到指定的服务器查询有没有更新版本的硬件设备驱动程序,一旦发现存在更新版本的硬件设备驱动程序,则自动将更新版本的硬件设备驱动程序下载到其所在的计算机系统中,并进行升级安装。
16.根据权利要求1所述的方法,其特征在于所述的修复或更新包括所述代理模块在其运行的计算机系统中搜索曾经保存的硬件设备驱动程序,或者从指定的服务器上将所述硬件设备驱动程序下载或复制到所述计算机系统中的一存储空间,然后用所述新的硬件设备驱动程序替换相应的出现故障的硬件设备驱动程序。
17.根据权利要求1-8或15、16所述的方法,其特征在于所述代理模块设置在所述计算机系统的BIOS或者EFI中,且当所述计算机系统运行时启动。
18.根据权利要求1-8或15、16所述的方法,其特征在于所述代理模块的安装软件存储在外部可存储的媒介中或网络之中,通过运行所述的安装软件安装到所述的计算机系统的主操作系统或者副操作系统当中或所述计算机系统的BIOS或者EFI中。
全文摘要
本发明公开了计算机系统硬件设备自动检测的方法,计算机系统中的代理模块检测所述计算机系统的硬件设备,并对所述硬件设备及其驱动程序进行维护管理操作;包括实时检测硬件设备,对硬件设备的异常进行诊断;通过所述的指定方式发出硬件设备故障报告;根据硬件设备驱动程序的状态对所述硬件设备驱动程序进行自动安装、修复或更新。本发明可对计算机系统的硬件设备在其生命周期内进行管理与维护,自动地介入到几乎所有的硬件设备管理与维护核心过程。可实现对硬件设备和硬件设备驱动程序的自动化管理与维护,极大地减少用户支持成本,提高硬件设备管理和维护的服务效率,快速地为用户提供更新版本的硬件设备驱动程序。
文档编号G06F11/32GK1648870SQ20051005139
公开日2005年8月3日 申请日期2005年3月9日 优先权日2005年3月9日
发明者张兴明, 徐征然 申请人:北京软通科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1