发明内容
有鉴于此,本发明提供一种蓝屏显示的处理方法及装置、存储介质、终端,主要目的在于当重新启动操作系统时,还是会重复出现蓝屏死机的现象,并没有从根本上解决蓝屏死机的问题。
依据本发明一个方面,提供了一种蓝屏显示的处理方法方法,包括:
当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值;
若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
进一步地,所述当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序包括:
当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
进一步地,所述当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序之前,所述方法还包括:
通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
进一步地,所述若启动蓝屏显示的驱动程序为所述第一驱动程序,判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值包括:
若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;
根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;
判断所述次数是否大于第一预设阈值。
进一步地,所述方法还包括:
判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;
若是,则禁止启动所述第一驱动程序,并进行报警。
进一步地,所述判断启动蓝屏显示的驱动程序是否为第一驱动程序之后,所述方法还包括:
若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
进一步地,所述禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示之后,所述方法还包括:
当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示之后,所述方法还包括:
通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述方法还包括:
通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
依据本发明一个方面,提供了一种蓝屏显示的处理方法装置,包括:
第一判断模块,用于当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
第二判断模块,用于若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于预设阈值;
禁止模块,用于若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
进一步地,所述第一判断模块,具体用于当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
进一步地,所述装置还包括:
确定模块,用于通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
进一步地,所述第二判断模块包括:
计数单元,用于若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;
统计单元,用于根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;
判断单元,用于判断所述次数是否大于第一预设阈值。
进一步地,所述装置还包括:第三判断模块,
所述第三判断模块,用于判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;
所述禁止模块,还用于若是,则禁止启动所述第一驱动程序,并进行报警。
进一步地,所述装置还包括:
调用模块,用于若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
进一步地,所述装置还包括:
第一更新模块,用于当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述装置还包括:
第二更新模块,用于通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述装置还包括:
反馈模块,用于通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述蓝屏显示的处理方法对应的操作。
根据本发明的再一方面,提供了一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述蓝屏显示的处理方法对应的操作。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供了一种蓝屏显示的处理方法及装置、存储介质、终端,首先当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值;若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。与现有当重新启动操作系统时,还是会重复出现蓝屏死机的现象相比,本发明实施例实现对蓝屏显示异常的及时发现,避免因特定的驱动程序频繁启动蓝屏显示而造成蓝屏显示异常,而导致操作系统频繁蓝屏,降低了频繁蓝屏死机的几率,从而找到蓝屏死机的原因。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种蓝屏显示的处理方法,如图1所示,所述方法包括:
101、当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序。
其中,所述第一驱动程序为任意指定的开发商开发的驱动程序,如指定a开发商开发的驱动程序为第一驱动程序,相对的,其他开发商开发的驱动程序为第二驱动程序,本发明实施例不做具体限定。所述操作系统可以为Mac os、Windows、Linux中的任意一种,优选的,可以为win7和win10 的x86和x64环境下,本发明实施例不做具体限定。
需要说明的是,一般的,操作系统在启动时,当运行出现内核级别错误、或者系统程序错误时,都会调用蓝屏模块进行蓝屏显示,以便提示操作人员进行处理。因此,在出现操作系统一异常而启动了蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序,即是否为指定开发商开发的驱动程序。
102、若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值。
其中,所述第一预设阈值为设定的异常蓝屏显示的次数,由技术人员根据驱动程序启动操作系统时,出现蓝屏显示异常的情况而设定,可以为3 次、5次等,本发明实施例不做具体限定。所述第一驱动程序启动蓝屏显示的次数为自操作系统利用第一驱动程序启动后,系统异常而启动蓝屏显示的总次数,当这个次数大于第一预设阈值后,则利用第一驱动程序启动操作系统存在蓝屏显示异常的状态。
需要说明的是,若启动蓝屏显示的驱动程序不为第一驱动程序,则可以选择启动第一驱动程序,也可以仍旧选择启动第二驱动程序,本发明实施例不做具体限定。
103、若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
对于本发明实施例,为了避免因第一驱动程序连续启动操作系统后,仍然出现蓝屏显示的现象,影响操作系统的启动,在第一驱动程序启动操作系统出现蓝屏显示的次数大于预先设定的异常蓝屏显示的第一预设阈值时,禁止启动第一驱动程序,可以通过加载第二驱动程序启动蓝屏显示,而实现操作系统的重新启动,避免再次出现蓝屏显示的情况。
本发明提供了一种蓝屏显示的处理方法。与现有当重新启动操作系统时,还是会重复出现蓝屏死机的现象相比,本发明实施例实现对蓝屏显示异常的及时发现,避免因特定的驱动程序频繁启动蓝屏显示而造成蓝屏显示异常,而导致操作系统频繁蓝屏,降低了频繁蓝屏死机的几率,从而找到蓝屏死机的原因。
本发明实施例提供了另一种蓝屏显示的处理方法,如图2所示,所述方法包括:
201、通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
对于本发明实施例,为了准确统计出第一驱动程序运行操作系统后,因严重性错误而启动蓝屏显示的次数,通过蓝屏文件确定第一驱动程序启动蓝屏显示的首次时间。其中,所述蓝屏文件为系统故障分析中的minidump 和MEMORY.DMP文件,若系统的应用层检测为dump文件,则预先将dump 设置为minidump,以便记录第一驱动程序启动蓝屏显示的首次时间。蓝屏文件中记录有不同驱动程序启动蓝屏显示的时间以及在注册表中的版本号,从而可以统计出不同版本号的驱动程序启动蓝屏显示的次数。
需要说明的是,确定出首次时间后,需要对当前第一驱动程序的版本号及启动蓝屏显示的次数进行更新,例如,首次时间为19号11点,说明第一驱动程序已经存在运行操作系统后而启动蓝屏显示的情况,因此更新当前第一驱动程序在注册表中的版本号及蓝屏显示的次数,例如,第一驱动程序对应的版本号为1.0,且更新后也为1.0,更新前后显示次数为10次,说明第一驱动程序的版本没有升级,也没有再次启动蓝屏显示;若更新后为2.0,则对应的蓝屏显示次数更新为0,说明第一驱动程序以2.0的版本没有启动过蓝屏显示,本发明实施例不做具体限定。所述的更新即包括了对版本号的增加、修改,及对启动蓝屏显示的次数的增加、删除,本发明实施例不做具体限定。另外,本发明实施例中可以通过BugCheck类型事件定位不同驱动程序启动蓝屏显示的时间点。
202、当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
对于本发明实施例,为了准确的判断出蓝屏显示是否由第一驱动程序引起的,通过提取蓝屏显示调用栈,通过蓝屏显示调用栈中确定第一驱动程序的文件名是否存在于栈中,从而判断蓝屏显示是否由第一驱动程序所引起。其中,在蓝屏显示调用栈中注册蓝屏的回调函数 KeRegisterBugCheckCallback或KeRegisterBugCheckReasonCallback,然后通过判断回调函数中是否存在第一驱动程序的文件名,以确定当前的蓝屏显示是否由第一驱动程序所启动的。
203a、若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值。
本步骤与图1所示的步骤102方法相同,在此不再赘述。
需要说明的是,若判断第一驱动程序启动蓝屏显示的次数小于或等于第一预设阈值,则返回步骤202。
对于本发明实施例,步骤203a具体可以为:若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;判断所述次数是否大于第一预设阈值。
对于本发明实施例,为了准确的确定出当前版本的第一驱动程序在启动蓝屏显示的次数,根据首次时间与计数次数统计出首次时间至当前时间点启动蓝屏显示的总次数。其中,所述若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则禁止启动所述第一驱动程序,并进行报警,即当第一驱动程序的文件名存在蓝屏显示的回调函数中后,对蓝屏文件中当前版本号的第一驱动程序启动蓝屏显示的次数加1。另外,可以根据第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计出第一驱动程序启动蓝屏显示的次数,例如,当前版本号的驱动程序首次时间为2015年2月8号2点10分,至此之后,2015年2月12号 7点10分一次,2015年3月1号5点10分一次,当前的时间点为2015年 5月7号5点00分,计数了一次,则从2015年2月8号2点10分至2015 年5月7号5点00分的时间间隔,统计出的次数为4次。利用统计出的次数与第一预设阈值进行对比判断,以确定是否出现蓝屏显示异常的情况。
需要说明的是,由于通过蓝屏文件中记录的蓝屏显示的次数进行统计的,而蓝屏文件中包含不同版本的第一驱动程序启动蓝屏显示的次数,可以对每个次数进行统计,也可以对最新版本的次数进行统计,从而判断出每个版本是否存在蓝屏显示异常的情况。
进一步地,为了确定频繁的蓝屏显示在未加载第一驱动程序之前是由其他驱动程序所启动的,且加载第一驱动程序之后也出现蓝屏显示的异常问题,以便及时对操作系统更换驱动程序,本发明实施例还包括:判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;若是,则禁止启动所述第一驱动程序,并进行报警。
对于本发明实施例,若频繁的蓝屏显示是未加载第一驱动程序之前,由其他驱动程序所启动的,则统计蓝屏文件中加载第一驱动程序启动蓝屏显示的首次时间之前,第二驱动程序启动蓝屏显示的次数是否大于第二预设阈值。其中,由于第二驱动程序为相对于第一驱动程序的其他驱动程序,则第二驱动程序可以为一种,也可以为多种,本发明实施例不做具体限定,因此,直接从蓝屏文件中统计首次时间之前的其他所有的驱动程序启动蓝屏显示的次数,所述第二预设阈值可以根据技术人员设定的频繁程度来配置,如可以为20次、30次,本发明实施例不做具体限定。另外,当由于第二驱动程序频繁的引起蓝屏显示,则为了判断是否第一驱动程序是否也会引起蓝屏显示的问题,在第二驱动程序启动蓝屏显示的次数大于第二预设阈值之后,判断第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值,第三预设阈值可以设定为与第一预设阈值不同的数值,也可以设定为相同的数值,可以为0次,也可以为10次,本发明实施例不做具体限定。若即大于第二预设阈值,也大于第三预设阈值,则说明当前蓝屏启动为异常状态,需要进行报警。
对于本发明实施例,与步骤203a并列的步骤203b、若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
对于本发明实施例,为了及时阻止因为第二驱动程序而启动的蓝屏显示,在判断启动蓝屏显示的驱动程序为第二驱动程序后,判断第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,第四预设阈值可以为技术人员根据第二驱动程序的开发商的技术进行设定数值,可以为30、也可以为10,本发明实施例不做具体限定。
需要说明的是,通过蓝屏文件中记录的第二驱动程序的文件名来计数第二驱动程序启动蓝屏显示的次数,然后判断第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,当大于第四预设阈值,说明利用第二驱动程序已经启动蓝屏显示的次数已经属于蓝屏显示异常的情况,需要利用第一驱动成来进行启动。
,对于本发明实施例,步骤203a之后的步骤204、若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
本步骤与图1所示的步骤103方法相同,在此不再赘述。
进一步地,为了使驱动程序可以正常的启动操作系统,步骤204之后还可以包括:当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
对于本发明实施例,为了对当前第一驱动程序进行升级,以使得操作系统可以重新启动,可以在接收到第一驱动程序的升级指令后,加载升级文件,并对第一驱动程序进行升级。升级后需要将蓝屏文件中第一驱动程序在注册表中的版本号更新为升级后的版本号,并更新蓝屏显示的计数次数,一般的,直接将配置当前版本号蓝屏显示的次数为0,并从下一次由新版本的第一驱动程序启动蓝屏显示后开始计数。
进一步地,为了避免因第一驱动程序本身出现异常情况而导致操作系统出现严重问题而启动蓝屏显示,步骤204之后还可以包括:通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
对于本发明实施例,可以直接调用卸载接口UnInstall对第一驱动程序进行卸载,然后利用安装接口Install重新加载安装第一驱动程序,以实现再次启动操作系统时,是利用全新的第一驱动程序进行启动的。另外,由于第一驱动程序已经进行了重新安装,安装的版本可能为新的,也可能为原有版本,因此,需要对蓝屏文件中的版本号及启动蓝屏显示的次数进行更新,例如,当安装的第一驱动程序为新的版本号时,则在蓝屏文件中添加新的版本号,并设定初始计数为0,当安装第一驱动程序为原有版本号时,可以仅仅记录更新的时间点,而不对计数进行重新设定,本发明实施例不做具体限定。
进一步地,为了及时向用户发送当前系统中第一驱动程序的启动情况,本发明实施例还可以包括:通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
对于本发明实施例,反馈的版本号与计数次数可以包括第一驱动程序更新之前的版本号及计数次数,也可以包括第一驱动程序更新之后的版本号及计数次数,其中,反馈的版本号与计数次数中需要标注出是否出现超过第一预设阈值的情况,以使得说明蓝屏显示异常时对应的版本号及计数次数。其中,具体反馈方式可以通过设定IsRunning返回值来体现,如对外GetVersion接口,IsRunning1返回值为表示返回连续异常值超过限制,即大于第一预设阈值,以使得驱动加载后根据自身版本变更后自动清除异常值,恢复正常加载,IsRunning2返回值为表示连续异常值未超过限制运行等,本发明实施例不做具体限定。
本发明提供了另一种蓝屏显示的处理方法,与现有当重新启动操作系统时,还是会重复出现蓝屏死机的现象相比,本发明实施例实现对蓝屏显示异常的及时发现,避免因特定的驱动程序频繁启动蓝屏显示而造成蓝屏显示异常,而导致操作系统频繁蓝屏,降低了频繁蓝屏死机的几率,从而找到蓝屏死机的原因。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种蓝屏显示的处理装置,如图3所示,该装置包括:第一判断模块31、第二判断模块32、禁止模块33。
第一判断模块31,用于当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
第二判断模块32,用于若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于预设阈值;
禁止模块33,用于若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
本发明提供了一种蓝屏显示的处理装置,与现有当重新启动操作系统时,还是会重复出现蓝屏死机的现象相比,本发明实施例实现对蓝屏显示异常的及时发现,避免因特定的驱动程序频繁启动蓝屏显示而造成蓝屏显示异常,而导致操作系统频繁蓝屏,降低了频繁蓝屏死机的几率,从而找到蓝屏死机的原因。
进一步的,作为对上述图2所示方法的实现,本发明实施例提供了另一种蓝屏显示的处理装置,如图4所示,该装置包括:第一判断模块41、第二判断模块42、禁止模块43、确定模块44、第三判断模块45、调用模块46、第一更新模块47、第二更新模块48、反馈模块49。
第一判断模块41,用于当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
第二判断模块42,用于若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于预设阈值;
禁止模块43,用于若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
进一步地,所述第一判断模块41,具体用于当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
进一步地,所述装置还包括:
确定模块44,用于通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
进一步地,所述第二判断模块42包括:
计数单元4201,用于若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;
统计单元4202,用于根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;
判断单元4203,用于判断所述次数是否大于第一预设阈值。
进一步地,所述装置还包括:第三判断模块45,
所述第三判断模块45,用于判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;
所述禁止模块43,还用于若是,则禁止启动所述第一驱动程序,并进行报警。
进一步地,所述装置还包括:
调用模块46,用于若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
进一步地,所述装置还包括:
第一更新模块47,用于当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述装置还包括:
第二更新模块48,用于通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
进一步地,所述装置还包括:
反馈模块49,用于通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
本发明提供了另一种蓝屏显示的处理方法,与现有当重新启动操作系统时,还是会重复出现蓝屏死机的现象相比,本发明实施例实现对蓝屏显示异常的及时发现,避免因特定的驱动程序频繁启动蓝屏显示而造成蓝屏显示异常,而导致操作系统频繁蓝屏,降低了频繁蓝屏死机的几率,从而找到蓝屏死机的原因。
根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的蓝屏显示的处理方法。
图5示出了根据本发明一个实施例提供的一种终端的结构示意图,本发明具体实施例并不对终端的具体实现做限定。
如图5所示,该终端可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508 完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述蓝屏显示的处理方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值;
若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的资产数据的管理方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明实施例还包括了:
A1、一种蓝屏显示的处理方法,包括:
当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值;
若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
A2、根据A1所述的方法,所述当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序包括:
当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
A3、根据A2所述的方法,所述当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序之前,所述方法还包括:
通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
A4、根据A3所述的方法,所述若启动蓝屏显示的驱动程序为所述第一驱动程序,判断所述第一驱动程序启动蓝屏显示的次数是否大于第一预设阈值包括:
若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;
根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;
判断所述次数是否大于第一预设阈值。
A5、根据A4所述的方法,所述方法还包括:
判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;
若是,则禁止启动所述第一驱动程序,并进行报警。
A6、根据A1-A4任一项所述的方法,所述判断启动蓝屏显示的驱动程序是否为第一驱动程序之后,所述方法还包括:
若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
A7、根据A6所述的方法,所述禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示之后,所述方法还包括:
当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
A8、根据A6所述的方法,所述禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示之后,所述方法还包括:
通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
A9、根据A6所述的方法,所述方法还包括:
通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
B10、一种蓝屏显示的处理装置,包括:
第一判断模块,用于当操作系统运行异常启动蓝屏显示时,判断启动蓝屏显示的驱动程序是否为第一驱动程序;
第二判断模块,用于若启动蓝屏显示的驱动程序为所述第一驱动程序,则判断所述第一驱动程序启动蓝屏显示的次数是否大于预设阈值;
禁止模块,用于若大于第一预设阈值,则禁止启动所述第一驱动程序,加载第二驱动程序启动蓝屏显示。
B11、根据B10所述的装置,
所述第一判断模块,具体用于当操作系统运行异常启动蓝屏显示时,提取蓝屏显示调用栈,判断所述蓝屏显示调用栈中所述第一驱动程序的文件名是否存在于回调函数中。
B12、根据B11所述的装置,所述装置还包括:
确定模块,用于通过蓝屏文件确定所述第一驱动程序启动蓝屏显示的首次时间,并更新所述第一驱动程序在注册表中的版本号及启动蓝屏显示的次数。
B13、根据B12所述的装置,所述第二判断模块包括:
计数单元,用于若所述蓝屏显示调用栈中所述第一驱动程序的文件名存在于回调函数中,则在所述注册表中对所述版本号对应的蓝屏显示次数进行计数;
统计单元,用于根据所述第一驱动程序启动蓝屏显示的首次时间至当前启动蓝屏显示的时间间隔统计所述第一驱动程序启动蓝屏显示的次数;
判断单元,用于判断所述次数是否大于第一预设阈值。
B14、根据B13所述的装置,所述装置还包括:第三判断模块,
所述第三判断模块,用于判断所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之前,所述第二驱动程序启动蓝屏显示的次数是否小于第二预设阈值,且所述蓝屏文件中所述第一驱动程序启动蓝屏显示的首次时间之后,所述第一驱动程序启动蓝屏显示的次数是否大于第三预设阈值;
所述禁止模块,还用于若是,则禁止启动所述第一驱动程序,并进行报警。
B15、根据B10-B13任一项所述的装置,所述装置还包括:
调用模块,用于若启动蓝屏显示的驱动程序为所述第二驱动程序,则判断所述第二驱动程序启动蓝屏显示的次数是否大于第四预设阈值,若大于第四预设阈值,则调用所述第一驱动程序启动蓝屏显示。
B16、根据B15所述的装置,所述装置还包括:
第一更新模块,用于当接收到所述第一驱动程序的升级指令后,加载所述升级指令中携带的升级文件,并根据所述升级文件对所述第一驱动程序进行升级,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
B17、根据B15所述的装置,所述装置还包括:
第二更新模块,用于通过卸载接口卸载所述第一驱动程序,以及通过安装接口加载所述第一驱动程序进行安装,并更新所述第一驱动程序启动蓝屏显示的计数次数及所述注册表中对所述版本号,以使得所述操作系统再一次运行时,启动所述第一驱动程序。
B18、根据B15所述的装置,所述装置还包括:
反馈模块,用于通过对外接口反馈所述注册表中所述第一驱动程序的版本号及所述第一驱动程序启动蓝屏显示的计数次数。
C19、一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A9中任一项所述的蓝屏显示的处理方法对应的操作。
D20、一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A9中任一项所述的蓝屏显示的处理方法对应的操作。