CN104407905B - 一种进行深度清理和更新的方法及装置 - Google Patents

一种进行深度清理和更新的方法及装置 Download PDF

Info

Publication number
CN104407905B
CN104407905B CN201410784223.1A CN201410784223A CN104407905B CN 104407905 B CN104407905 B CN 104407905B CN 201410784223 A CN201410784223 A CN 201410784223A CN 104407905 B CN104407905 B CN 104407905B
Authority
CN
China
Prior art keywords
operating system
driving
currently used
file
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410784223.1A
Other languages
English (en)
Other versions
CN104407905A (zh
Inventor
徐鹏捷
陈雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410784223.1A priority Critical patent/CN104407905B/zh
Publication of CN104407905A publication Critical patent/CN104407905A/zh
Application granted granted Critical
Publication of CN104407905B publication Critical patent/CN104407905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种进行深度清理和更新的方法及装置,其中:获取操作系统当前使用的系统文件以及更新软件;系统文件包括:组件、驱动程序;清除操作系统中当前未使用的系统文件;将更新软件进行固化更新处理。本发明的进行深度清理和更新的方法及装置,能够对驱动、组件等系统文件进行清理并能进行软件升级包的固化更新,能够使系统运行稳定,可大大减少冗余的驱动和组件对存储空间的占用,释放更多的存储空间,提高性能以及用户体验度。

Description

一种进行深度清理和更新的方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种进行深度清理和更新的方法及装置。
背景技术
随着技术的发展,在日常生活中对电脑、手机等终端越来越依赖,对电脑的运行速度的要求也越来越高。在使用一端时间后,电脑会产生大量的垃圾文件,会占用系统大量的内存以及硬盘的存储空间,在运行中会影响操作速度,影响用户的正常使用。为了能有效地提高运行速度,需要对电脑中的垃圾文件进行清理,释放更多的存储空间。
目前,垃圾文件的清理通常是通过扫描系统和常用的软件来识别垃圾软件,并进行清理的。通常,系统中安装有多个驱动程序,对于一个硬件可能安装有多个版本、公司的驱动程序,例如,网卡驱动、USB驱动等等,但通常一个硬件设备只与一个驱动程序绑定。当一个硬件设备安装有多个驱动时,会浪费大量的存储空间,影响电脑的性能。并且,在对组件进行升级的过程中,会下载各种应用程序的安装包进行安装,因此,会积累大量的不同版本的组件。但是,目前的垃圾文件的清理技术,仅仅能够清理一般的软件,对于系统软件,例如,驱动程序、组件等则无法进行清理。并且,当有软件更新时,对软件升级包不能进行固化更新处理。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供一种进行深度清理和更新的方法,能够对驱动、组件等系统文件进行清理并能进行升级包的固化更新。
一种进行深度清理和更新的方法,其中:获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;清除所述操作系统当前未使用的所述系统文件;将所述更新软件进行固化更新处理。
根据本发明的一个实施例,进一步的,所述清除所述操作系统当前未使用的所述系统文件包括:调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
根据本发明的一个实施例,进一步的,从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
根据本发明的一个实施例,进一步的,所述清除所述操作系统当前未使用的所述系统文件包括:调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
根据本发明的一个实施例,进一步的,所述将所述更新软件进行固化更新处理包括:所述更新软件包括:SP补丁包;调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
根据本发明的一个实施例,进一步的,在进行深度清理和更新的提示界面中,针对的驱动类型分别显示清除所述操作系统当前未使用的驱动空间容量;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动;根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序。
根据本发明的一个实施例,进一步的,所述操作系统包括:WINDOWS VISTA、WINDOWS7、WINDOWS8。
本发明要解决的一个技术问题是提供一种进行深度清理和更新的抓装置,能够对驱动、组件等系统文件进行清理并能进行升级包的固化更新。
一种进行深度清理和更新的装置,包括:文件获取单元,用于获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;清除单元,用于清除所述操作系统当前未使用的所述系统文件;更新单元,用于将所述更新软件进行固化更新处理。
根据本发明的一个实施例,进一步的,所述清除单元,包括:驱动清除子模块,调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
根据本发明的一个实施例,进一步的,所述驱动清除子模块,用于根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动;
根据本发明的一个实施例,进一步的,所述清除单元,包括:驱动获取子模块,用于从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
根据本发明的一个实施例,进一步的,所述清除单元,包括:组件清除子模块,用于调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
根据本发明的一个实施例,进一步的,所述更新软件包括:SP补丁包;所述更新单元,用于调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
本发明的进行深度清理和更新的方法及装置,能够对驱动、组件等系统文件进行清理并能进行软件升级包的固化更新,能够使系统运行稳定,可大大减少冗余的驱动和组件对存储空间的占用,释放更多的存储空间,提高性能以及用户体验度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明的进行深度清理和更新的方法的一个实施例的流程图;
图2为根据本发明的进行深度清理和更新的方法的另一个实施例的流程图;
图3为根据本发明的进行深度清理和更新的装置的一个实施例的结构示意图;
图4为根据本发明的进行深度清理和更新的装置的一个实施例的清除单元的示意图;
图5、图6和图7为进行深度清理和更新的界面示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为根据本发明的进行深度清理和更新的方法的一个实施例的流程图,如图1所示:
步骤101,获取操作系统当前使用的系统文件以及更新软件;系统文件包括:组件、驱动程序等。
步骤102,清除操作系统当前未使用的系统文件。
步骤103,将更新软件进行固化更新处理。
固化更新是指安装软件更新包,替换相应的旧版本软件,并对注册表等进行操作,使系统再次调用此软件时,使用更新后的程序。例如,微软为WIDDOWS提供的SP更新软件包等等。
本发明的进行深度清理和更新的方法,能够对驱动和组件等系统文件进行垃圾清除,对更新软件进行固化更新处理,能够大大减少冗余的驱动和组件对存储空间的占用,释放更多的存储空间,提高性能以及用户体验度。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,保存了驱动信息、软件安装信息、软件版本号和日期,序列号等。注册表控制所有32位应用程序和驱动,数据被分割成多层次的键和子键,建立分层次结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。
所有软件、硬件、windows工作的设置都存放在HKEY_LOCAL_MACHINE键下,HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键,它包括网络和硬件上所有的软件设置,例如,文件的位置,注册和未注册的状态,版本号等等。HKEY_LOCAL_MACHINE的子键包括:Enum、Root、HARDWARE、SOFTWARE等等。可以通过调用系统API,例如RegOpenKeyEx()(打开注册表项)、RegQueryValueEx()(取值)、RegCloseKey()(关闭注册表项)等等,对注册表进行操作。
在一个实施例中,可以调用RegQueryValueEx(),从操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动程序安装目录等。可以从操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
在一个实施例中,link文件即为link或hard link,也称为硬链接。删除当前未与硬件设备绑定的全部驱动程序,可以采用直接删除的方式,调用DriverPackageUninstall函数(系统提供的API函数),删除当前未与硬件设备绑定的全部驱动程序,也可以生成指向当前与硬件设备绑定的驱动程序的link文件,将此link文件分别存储在被删除的当前未与硬件设备绑定的全部驱动程序的安装目录中。
下面是一个调用DriverPackageUninstall删除驱动程序的例子:
BOOL NeedReboot;
thr=DriverPackageUninstall(DriverPath,DRIVER_PACKAGE_DELETE_FILES,NULL,&NeedReboot);
能够将指定安装目录下的驱动程序删除。
由于驱动程序被删除后,在系统的调用中可能会出现异常,因此,生成当前与硬件设备绑定的驱动程序的link文件,或者其它程序的link文件,将此link文件分别存储在被删除的当前未与硬件设备绑定的全部驱动程序的安装目录中。由于link文件较小,并且替换掉被删除的驱动,既能够释放空间,又能够保证系统稳定运行。
Windows提供更新包管理接口IDismPackageManager,主要用于获取更新信息,以及提交状态更改。IDismPackageManager接口的部分定义如下:
MIDL_INTERFACE("1754aa4f-f0e2-4692-a802-d51871085f34")
IDismPackageManager:IDispatch
{
virtual HRESULT__stdcall get_IsCompressionEnabled(
/*[out,retval]*/VARIANT_BOOL*pVal)=0;
virtual HRESULT__stdcall get_IsImageUnserviceable(
/*[out,retval]*/VARIANT_BOOL*pVal)=0;
virtual HRESULT__stdcall OpenPackageByPath(
/*[in]*/BSTR PackageLocation,
/*[out,retval]*/struct IDismPackage**Package)=0;
virtual HRESULT__stdcall OpenPackageByName(
/*[in]*/BSTR PackageName,
/*[out,retval]*/struct IDismPackage**Package)=0;
virtual HRESULT__stdcall OpenFoundationPackage(
/*[out,retval]*/struct IDismPackage**Package)=0;
virtual HRESULT__stdcall OpenMsuPackage(
/*[in]*/BSTR PackageLocation,
/*[out,retval]*/struct IDismMsuPackage**Package)=0;
virtual HRESULT__stdcall OpenPublicFeature(
/*[in]*/BSTR FeatureName,
/*[out,retval]*/struct IDismPackageFeature**Feature)=0;
//获取所有更新信息
virtual HRESULT__stdcall GetPackageCollection(
/*[out,retval]*/struct IDismPackageCollection**ppPackages)=0;
virtual HRESULT__stdcall GetPublicFeatureCollection(
/*[out,retval]*/struct IDismPackageFeatureCollection**
ppPackageFeatures)=0;
//提交更改,让所有操作生效
virtual HRESULT__stdcall ProcessChanges()=0;
virtual HRESULT__stdcall ProcessChangesWithOptions(
/*[in]*/unsigned int Options)=0;
virtual HRESULT__stdcall ProcessChangesPostReboot()=0;
virtual HRESULT__stdcall Scavenge()=0;
virtual HRESULT__stdcall RevertPendingActions()=0;
};
在一个实施例中,从操作系统注册表中获取安装的全部组件信息,调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息。
例如:CComQIPtr<IDismPackageCollection>pIDismPackageCollection;
IDismPackageManager*pIDismPackageManager;
HRESULT hr=pIDismPackageManager-
>GetPackageCollection(&pIDismPackageCollection)。
Windows提供IDismPackage接口,用于获取更新信息以及添加删除更新。IDismPackage接口的部分定义如下:
IDismPackage:IDispatch
{
//virtual HRESULT__stdcall get_Identity(
/*[out,retval]*/BSTR*pVal)=0;
virtual HRESULT__stdcall get_ReleaseType(
/*[out,retval]*/BSTR*pVal)=0;
//获取驱动状态
virtual HRESULT__stdcall get_State(
/*[out,retval]*/DISM_INSTALL_STATE*pVal)=0;
virtual HRESULT__stdcall Install()=0;
//删除该更新
virtual HRESULT__stdcall Remove()=0;
virtual HRESULT__stdcall Stage()=0;
}。
可以调用IDismPackage接口的Remove方法,清除操作系统未使用的组件。提供IDismPackage等接口的操作系统包括:WINDOWS VISTA、WINDOWS7、WINDOWS8等等。
例如,定义一个IDismPackageManager接口对象,通过GetPackageCollection方法获取操作系统中全部组件的所有组件信息,并根据返回的结果集判断组件是否被使用。
定义一个IDismPackage接口对象,当判断组件未使用时,则调用Remove方法删除,当删除后,调用IDismPackageManager接口的ProcessChanges方法,通知系统组件已发生更新,具体实现如下:
在一个实施例中,调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除操作系统当前未使用的组件。也可以生成指向当前使用的组件的link文件,将此link文件分别存储在被删除的当前未使用的组件的安装目录中。
在一个实施例中,更新软件包括:SP补丁包等。调用IDismServicePackScavenge接口的SPScavenge方法,固化SP补丁包。
Windows提供IDismServicePackScavenge接口,此接口用于管理SP补丁包,另外还能固化SP补丁。IDismServicePackScavenge接口的部分定义如下
MIDL_INTERFACE("a457b170-c9c3-499b-85bc-59259e92ae4d")
IDismServicePackScavenge:IDispatch
{
//
//Raw methods provided by interface
//
//清理所有SP补丁,bHideSpSpecified参数表示清理后是否在已安装的更新中隐藏
virtual HRESULT__stdcall SPScavenge(
/*[in]*/VARIANT_BOOL bHideSpSpecified)=0;
//检查SP补丁情况,bScavenge指示能否清理,plNumberOfSupersededSP参数表示可以释放的SP补丁数量
virtual HRESULT__stdcall SPScavengeable(
/*[out]*/VARIANT_BOOL*bScavenge,
/*[out]*/long*plNumberOfSupersededSP)=0;
//此接口可以检查系统是否存在挂起行为
virtual HRESULT__stdcall IsSystemPending(
/*[out,retval]*/VARIANT_BOOL*pbPending)=0;
virtual HRESULT__stdcall GetCurrentEdition(
/*[out]*/BSTR*pszCurrentEdition,
/*[out]*/long*plEditionsCount)=0;
};
如果需要进行SP补丁的固化更新,只需要调用hr=pIDismServicePackScavenge->SPScavenge(-1)。
图2为根据本发明的进行深度清理和更新的方法的另一个实施例的流程图;如图2所示:
步骤201,从操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息。
步骤202,从操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
步骤203,删除当前未与硬件设备绑定的全部驱动程序。
步骤204,将此link文件分别存储在被删除的当前未与硬件设备绑定的驱动程序的目录中。
步骤205,从操作系统注册表中获取安装的全部组件信息。
步骤206,调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息。
步骤207,调用IDismPackage接口的Remove方法,清除操作系统当前未使用的组件。
步骤208,调用IDismServicePackScavenge接口的SPScavenge方法,固化SP补丁包。
在一个实施例中,获取操作系统中当前未使用的驱动程序文件和组件文件的大小并相加,计算空间容量。获取全部link文件,并获取link文件指向的目标文件。当判断多个link文件指向的目标文件的ID相同时,则不对此目标文件的大小进行重复相加计算,使得在计算空间容量时,对此目标文件的大小只相加一次。
在系统中,对一个目标文件可能有多个link文件指向,在扫描的过程中,如果扫描到多个指向同一个目标文件的link文件,例如驱动程序,将多个link文件指向的目标文件大小都相加,可造成计算释放空间不准确的现象。在多个link文件指向同一目标文件时,对此目标文件的大小只相加一次,则能比较准确的计算能够释放空间的大小。
在一个实施例中,系统中的文件具有唯ID。首先用一个map去保存所有文件信息,定义为map<UINT64,DWORD>FileMap;搜索到老文件后将文件的FileId以及硬链接次数(即指向同一目标文件的link文件的数量)Links插入map中,并进行减一操作,Item为剩余的硬连接次数。
map<UINT64,DWORD>::iterator Item=FileMap.insert(pair<UINT64,DWORD>(FileId,Links)).first;
--Item->second;
如果引用次数变为0,说明文件可以彻底删除,从map移除,并将文件的物理尺寸累加到Size中。
遍历完成后,Size中就保存了总共可以释放的空间,能够比较准确地对释放存储空间进行预估。
在一个实施例中,如图5所示,为用户提供的进行深度清理和更新的界面。针对的驱动类型分别显示清除操作系统当前未使用的驱动空间容量,驱动类型包括:打印驱动、显卡驱动、网卡驱动等。根据接收到的深度更新操作指令中的驱动类型,清除操作系统与此驱动类型对应的、当前未使用的驱动程序。
如图3所示,本发明提供一种进行深度清理和更新的装置31。文件获取单元311获取操作系统当前使用的系统文件以及更新软件。系统文件包括:组件、驱动程序等。清除单元312清除操作系统当前未使用的系统文件。更新单元313将更新软件进行固化更新处理。
如图4所示,驱动清除子模块411调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。或者驱动清除子模块411删除当前未与硬件设备绑定的全部驱动程序,生成指向当前与硬件设备绑定的驱动程序的link文件;将此link文件分别存储在被删除的当前未与硬件设备绑定的全部驱动程序的安装目录中。
驱动清除子模块411根据接收到的深度更新操作指令中的驱动类型,清除操作系统与此驱动类型对应的、当前未使用的驱动程序;驱动类型包括:打印驱动、显卡驱动、网卡驱动。
驱动获取子模块412从操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;从操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
组件清除子模块413调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除操作系统当前未使用的组件,组件清除子模块413可以生成指向当前使用的组件的link文件,将此link文件分别存储在被删除的当前未使用的组件的安装目录中。
更新软件包括:SP补丁包;更新单元313调用IDismServicePackScavenge接口的SPScavenge方法,固化SP补丁包。
上述实施例提供的进行深度清理和更新的方法及装置,能够对系统文件进行深度清除,并能对软件进行固化更新,能够使系统运行稳定,可大大减少冗余的驱动和组件对存储空间的占用,释放更多的存储空间,提高性能以及用户体验度。
本发明的实施例公开了:
A1、一种进行深度清理和更新的方法,其中:
获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;
清除所述操作系统中当前未使用的所述系统文件;
将所述更新软件进行固化更新处理。
A2、如权利要求A1所述的方法,其特征在于,所述清除所述操作系统当前未使用的所述系统文件包括:
调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
A3、如权利要求A2所述的方法,其特征在于:
从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;
从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
A4、如权利要求A1所述的方法,其特征在于,所述清除所述操作系统当前未使用的所述系统文件包括:
调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;
调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
A5、如权利要求A2或A4所述的方法,其特征在于,所述将所述更新软件进行固化更新处理包括:
所述更新软件包括:SP补丁包;
调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
A6、如权利要求A1所述的方法,其特征在于:
在进行深度清理和更新的提示界面中,针对的驱动类型分别显示清除所述操作系统当前未使用的驱动空间容量;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动;
根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序。
A7、如权利要求A1所述的方法,其特征在于:
所述操作系统包括:WINDOWS VISTA、WINDOWS7、WINDOWS8。
B8、一种进行深度清理和更新的装置,其特征在于,包括:
文件获取单元,用于获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;
清除单元,用于清除所述操作系统当前未使用的所述系统文件;
更新单元,用于将所述更新软件进行固化更新处理。
B9、如权利要求B8所述的装置,其特征在于:
所述清除单元,包括:
驱动清除子模块,用于调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
B10、如权利要求B9所述的装置,其特征在于:
所述驱动清除子模块,用于根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动;
B11、如权利要求B9所述的装置,其特征在于:
所述清除单元,包括:
驱动获取子模块,用于从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
B12、如权利要求B8所述的装置,其特征在于:
所述清除单元,包括:
组件清除子模块,用于调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
B13、如权利要求B8所述的装置,其特征在于:
所述更新软件包括:SP补丁包;
所述更新单元,用于调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

Claims (11)

1.一种进行深度清理和更新的方法,其中:
获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;
清除所述操作系统中当前未使用的所述系统文件;
生成指向当前使用的系统文件的link文件,将此link文件分别存储在被删除的当前未使用的系统文件的安装目录中;
将所述更新软件进行固化更新处理;
所述清除所述操作系统当前未使用的所述系统文件包括:
调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
2.如权利要求1所述的方法,其特征在于:
从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;
从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
3.如权利要求1所述的方法,其特征在于,所述清除所述操作系统当前未使用的所述系统文件包括:
调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;
调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
4.如权利要求3所述的方法,其特征在于,所述将所述更新软件进行固化更新处理包括:
所述更新软件包括:SP补丁包;
调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
5.如权利要求1所述的方法,其特征在于:
在进行深度清理和更新的提示界面中,针对的驱动类型分别显示清除所述操作系统当前未使用的驱动空间容量;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动;
根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序。
6.如权利要求1所述的方法,其特征在于:
所述操作系统包括:WINDOWS VISTA、WINDOWS7、WINDOWS8。
7.一种进行深度清理和更新的装置,其特征在于,包括:
文件获取单元,用于获取操作系统当前使用的系统文件以及更新软件;所述系统文件包括:组件、驱动程序;
清除单元,用于清除所述操作系统当前未使用的所述系统文件;以及生成指向当前使用的系统文件的link文件,将此link文件分别存储在被删除的当前未使用的系统文件的安装目录中;
更新单元,用于将所述更新软件进行固化更新处理;
所述清除单元,包括:
驱动清除子模块,用于调用DriverPackageUninstall函数删除当前未与硬件设备绑定的全部驱动程序。
8.如权利要求7所述的装置,其特征在于:
所述驱动清除子模块,用于根据接收到的深度更新操作指令中的驱动类型,清除所述操作系统与此驱动类型对应的、当前未使用的驱动程序;所述驱动类型包括:打印驱动、显卡驱动、网卡驱动。
9.如权利要求7所述的装置,其特征在于:
所述清除单元,包括:
驱动获取子模块,用于从所述操作系统的注册表中获取对于硬件设备安装的全部驱动程序信息,包括:键值、驱动安装目录;从所述操作系统的设备管理器中获取与硬件设备当前绑定的驱动程序信息。
10.如权利要求9所述的装置,其特征在于:
所述清除单元,包括:
组件清除子模块,用于调用IDismPackageManager接口的GetPackageCollection方法,获取操作系统中全部组件的更新信息;调用IDismPackage接口的Remove方法,清除所述操作系统当前未使用的组件。
11.如权利要求10所述的装置,其特征在于:
所述更新软件包括:SP补丁包;
所述更新单元,用于调用IDismServicePackScavenge接口的SPScavenge方法,固化所述SP补丁包。
CN201410784223.1A 2014-12-16 2014-12-16 一种进行深度清理和更新的方法及装置 Active CN104407905B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410784223.1A CN104407905B (zh) 2014-12-16 2014-12-16 一种进行深度清理和更新的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410784223.1A CN104407905B (zh) 2014-12-16 2014-12-16 一种进行深度清理和更新的方法及装置

Publications (2)

Publication Number Publication Date
CN104407905A CN104407905A (zh) 2015-03-11
CN104407905B true CN104407905B (zh) 2018-10-19

Family

ID=52645538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410784223.1A Active CN104407905B (zh) 2014-12-16 2014-12-16 一种进行深度清理和更新的方法及装置

Country Status (1)

Country Link
CN (1) CN104407905B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168962A (zh) * 2016-03-07 2017-09-15 深圳市中兴微电子技术有限公司 一种文件处理方法、客户端及用户设备
CN106528856A (zh) * 2016-11-30 2017-03-22 深圳天珑无线科技有限公司 一种数据处理方法和装置
CN108399071B (zh) * 2018-01-19 2021-07-20 五八有限公司 应用程序安装包大小的处理方法、装置、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670718A (zh) * 2004-03-17 2005-09-21 三星Techwin株式会社 用于远程提供驱动程序信息的方法和设备
CN104094225A (zh) * 2011-11-28 2014-10-08 韦斯技术有限公司 创建或安装用于具有多个硬件平台中的一个的目标装置的磁盘映像

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670718A (zh) * 2004-03-17 2005-09-21 三星Techwin株式会社 用于远程提供驱动程序信息的方法和设备
CN104094225A (zh) * 2011-11-28 2014-10-08 韦斯技术有限公司 创建或安装用于具有多个硬件平台中的一个的目标装置的磁盘映像

Also Published As

Publication number Publication date
CN104407905A (zh) 2015-03-11

Similar Documents

Publication Publication Date Title
KR101619557B1 (ko) 커스터마이즈된 컴퓨터 응용 프로그램 패키지
US8161479B2 (en) Synchronizing virtual machine and application life cycles
CN104408201B (zh) 垃圾文件的清理方法及装置
US7539985B2 (en) Systems and methods for dynamic component versioning
EP1577766A2 (en) Side-by-side drivers
CN104407905B (zh) 一种进行深度清理和更新的方法及装置
CA2682988A1 (en) Augmenting a virtual machine hosting environment from within a virtual machine
CN102567053A (zh) 一种软件版本回退的方法及装置
CN106155745A (zh) 基本输入输出系统的升级方法、装置和系统
CN106201660A (zh) 一种虚拟机自动升级虚拟硬件和软件的方法
US20160062757A1 (en) Virtual appliance deployment
CN109445866A (zh) 一种硬盘盘符的确定方法、装置及服务器
US20110321030A1 (en) Method and apparatus for updating a software image
CN105162667B (zh) 虚拟机配置方法和装置
US20070028228A1 (en) Software upgrades with user advisement
CN107741853A (zh) 一种部署服务器的方法、系统及信息管理平台
CN102880478A (zh) 软件更新方法
US9501316B2 (en) Instantiating virtual appliances of a storage array
CN108170505A (zh) 一种驱动管理方法及宿主机
CN106874121A (zh) 一种虚拟机内存回收方法及装置
US8856414B2 (en) Determining required software components for SCSI system initialization
CN109947785A (zh) 一种块服务lib接口更新方法、装置、电子设备及介质
CN111459644A (zh) 一种主机迁移系统
CN111459643A (zh) 一种主机迁移方法
CN109976792A (zh) 一种镜像延迟更新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220713

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right