專利名稱:一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng)的制作方法
一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng)
技術(shù)領(lǐng)域:
本發(fā)明涉及一種Windows操作系統(tǒng)的系統(tǒng)數(shù)據(jù)保護(hù)和磁盤數(shù)據(jù)保護(hù)技術(shù)。背景技術(shù):
在當(dāng)前網(wǎng)絡(luò)環(huán)境中,病毒和木馬眾多,稍不留心就會(huì)使系統(tǒng)癱瘓,或重要資料外泄。并且在某些應(yīng)用場(chǎng)合,用戶希望安裝好系統(tǒng)和應(yīng)用軟件后,系統(tǒng)能一直處于一個(gè)穩(wěn)定不變的系統(tǒng)環(huán)境,長(zhǎng)期使用而不會(huì)隨著時(shí)間的推移而產(chǎn)生很多垃圾文件,導(dǎo)致系統(tǒng)變得緩慢, 甚至讓病毒木馬有機(jī)可乘,導(dǎo)致系統(tǒng)癱瘓或重要機(jī)密外泄,由此產(chǎn)生的損失是無(wú)法估量的。 微軟的EWF內(nèi)存保護(hù)功能可以阻止用戶對(duì)被保護(hù)分區(qū)的修改,防止數(shù)據(jù)被篡改,重啟系統(tǒng)后所有在被保護(hù)分區(qū)的修改都將消失,但其在實(shí)際使用過程中有以下幾個(gè)問題1、EWF(—種保護(hù)系統(tǒng),用來(lái)保護(hù)卷以防止寫入)內(nèi)存保護(hù)會(huì)占用很多物理內(nèi)存, 長(zhǎng)時(shí)間復(fù)雜運(yùn)用會(huì)導(dǎo)致內(nèi)存耗盡而死機(jī);2、因?yàn)镋WF將所有對(duì)被保護(hù)分區(qū)的修改都緩存在物理內(nèi)存中,受限于物理內(nèi)存的大小,不能存儲(chǔ)較大的文件,如視頻文件、制圖文件等;3、只有 Windows XP Embedded^ Windows Embedded Standard 7 操作系統(tǒng)上的版本,沒有提供在Windows XP和Windows 7操作系統(tǒng)上運(yùn)行的版本。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題,在于提供一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),它能夠在Windows XP和Windows 7操作系統(tǒng)上實(shí)現(xiàn)磁盤分區(qū)保護(hù)功能,同時(shí)解決受限于物理內(nèi)存大小的問題。本發(fā)明是這樣實(shí)現(xiàn)的一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),它包括從上到下依次通信連接的應(yīng)用程序?qū)?、支持?kù)、驅(qū)動(dòng)程序?qū)?、覆蓋層,所述驅(qū)動(dòng)程序?qū)臃謩e通信連接到磁盤的被保護(hù)分區(qū)和配置信息庫(kù),所述應(yīng)用程序?qū)邮怯脩魧?duì)本保護(hù)系統(tǒng)進(jìn)行操作和管理的接口,所述支持庫(kù)是對(duì)應(yīng)用程序?qū)拥姆庋b,所述驅(qū)動(dòng)程序?qū)佑糜趯?duì)磁盤的寫過濾數(shù)據(jù)映射到覆蓋層和用于對(duì)覆蓋層的選擇和維護(hù),所述覆蓋層用于存儲(chǔ)寫過濾數(shù)據(jù),所述驅(qū)動(dòng)程序?qū)硬捎昧?Windows磁盤過濾的驅(qū)動(dòng)設(shè)備,在所述驅(qū)動(dòng)程序?qū)又惺褂?IoCreateDevice創(chuàng)建一個(gè)用于驅(qū)動(dòng)程序?qū)雍蛻?yīng)用程序?qū)又g通信的設(shè)備“IpedDevice”, 所述應(yīng)用程序?qū)诱{(diào)用支持庫(kù)相應(yīng)的函數(shù)接口,然后使用DeciceloControl函數(shù)通過 “IpedDevice”調(diào)用驅(qū)動(dòng)程序?qū)拥南鄳?yīng)接口完成相應(yīng)的功能。進(jìn)一步的,所述覆蓋層包括內(nèi)存覆蓋層、獨(dú)立硬盤覆蓋層、非獨(dú)立硬盤覆蓋層。進(jìn)一步的,所述保護(hù)系統(tǒng)根據(jù)配置信息庫(kù)選擇啟用的覆蓋層,當(dāng)啟用內(nèi)存覆蓋層時(shí),優(yōu)先使用內(nèi)存覆蓋層,當(dāng)內(nèi)存覆蓋層的內(nèi)存使用量達(dá)到設(shè)置值的上限時(shí),自動(dòng)切換為使用硬盤覆蓋層,保障讀寫操作正常,當(dāng)內(nèi)存覆蓋層的內(nèi)存被程序釋放后又可以自動(dòng)切換為內(nèi)存覆蓋層,以加快讀寫速度,在使用硬盤覆蓋層時(shí),若存在獨(dú)立的硬盤覆蓋層,則優(yōu)先使用獨(dú)立的硬盤覆蓋層。本發(fā)明具有如下優(yōu)點(diǎn)本發(fā)明不只是在WindowsXP Embedded,Windows Embedded Standard 7操作系統(tǒng)上,還可以在Windows XP和Windows 7操作系統(tǒng)實(shí)現(xiàn)磁盤分區(qū)保護(hù)功能,用戶所有針對(duì)被保護(hù)分區(qū)的修改在系統(tǒng)重啟后都將無(wú)效。本發(fā)明還解決了受限于物理內(nèi)存大小的問題,使緩存數(shù)據(jù)可以在物理內(nèi)存剩余較少時(shí)存儲(chǔ)在磁盤中,即保留了內(nèi)存緩存讀寫速度快的優(yōu)點(diǎn),又兼顧了磁盤緩存容量大的優(yōu)
點(diǎn)ο本發(fā)明實(shí)現(xiàn)了一次休眠多次啟動(dòng)的功能,從而加快系統(tǒng)開機(jī)速度,以及通過私有接口穿透保存特定文件的功能,并且本發(fā)明還提供了將被保護(hù)分區(qū)上修改的內(nèi)容保存到被保護(hù)分區(qū)的功能,即系統(tǒng)重啟后被保護(hù)分區(qū)上修改的內(nèi)容不會(huì)失效。
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。圖1為本發(fā)明保護(hù)系統(tǒng)的流程圖。圖2為本發(fā)明保護(hù)系統(tǒng)的結(jié)構(gòu)框圖。圖3為本發(fā)明的通信流程圖。圖4為應(yīng)用程序?qū)痈鞣N操作執(zhí)行的流程示意圖。圖5為本保護(hù)系統(tǒng)的覆蓋層選擇和切換示意圖。圖6為本發(fā)明保護(hù)系統(tǒng)提交算法的流程圖。
具體實(shí)施方式請(qǐng)參閱圖1至圖6所示,對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)的說明。寫過濾是指將寫入到被保護(hù)分區(qū)中被保護(hù)的扇區(qū)的寫操作過濾出來(lái),進(jìn)行映射到其它位置,而不真實(shí)寫入到要寫入的被保護(hù)的扇區(qū)中。存儲(chǔ)寫過濾數(shù)據(jù)的區(qū)域我們成為覆蓋層,覆蓋層可以是內(nèi)存、獨(dú)立的硬盤分區(qū)或者利用被保護(hù)分區(qū)內(nèi)的空扇區(qū)作為覆蓋層 (稱為非獨(dú)立硬盤覆蓋層)。程序的流程如圖1所示,通過覆蓋層映射算法,在過濾寫數(shù)據(jù)時(shí),由算法控制將寫過濾數(shù)據(jù)重定向到覆蓋層,即內(nèi)存覆蓋層、獨(dú)立硬盤覆蓋層或非獨(dú)立硬盤覆蓋層。這些所有的寫過濾和數(shù)據(jù)映射對(duì)于用戶層來(lái)說都是透明的。上述三種覆蓋層每一種都有其優(yōu)點(diǎn), 內(nèi)存覆蓋層對(duì)寫過濾數(shù)據(jù)的讀寫速度非??欤诠虘B(tài)磁盤上,比正常的磁盤讀寫速度快5-6 倍,效率非常好,但覆蓋層空間有限;獨(dú)立硬盤覆蓋層重定向?qū)戇^濾數(shù)據(jù)算法簡(jiǎn)單,并且當(dāng)需要保存寫過濾數(shù)據(jù)到真實(shí)扇區(qū)時(shí),保存數(shù)據(jù)的效率比較高,但必須在開啟保護(hù)前在磁盤上劃分一個(gè)獨(dú)立的分區(qū)作為覆蓋層;非獨(dú)立覆蓋層直接利用被保護(hù)的剩余空間作為覆蓋層進(jìn)行寫過濾數(shù)據(jù)的保存,算法相對(duì)復(fù)雜一點(diǎn),并且保存數(shù)據(jù)到真實(shí)扇區(qū)時(shí)效率比較低,但其安裝方便??梢愿鶕?jù)使用的實(shí)際需求和用戶的操作習(xí)慣來(lái)進(jìn)行覆蓋層的選擇,比現(xiàn)有的保護(hù)軟件提速和易用很多。如圖2,本發(fā)明一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),它包括從上到下依次通信連接的應(yīng)用程序?qū)?、支持?kù)、驅(qū)動(dòng)程序?qū)?、覆蓋層,所述驅(qū)動(dòng)程序?qū)臃謩e通信連接到磁盤的被保護(hù)分區(qū)和配置信息庫(kù),所述應(yīng)用程序?qū)邮怯脩魧?duì)本保護(hù)系統(tǒng)進(jìn)行操作和管理的接口,所述支持庫(kù)是對(duì)應(yīng)用程序?qū)拥姆庋b,所述驅(qū)動(dòng)程序?qū)佑糜趯?duì)磁盤的寫過濾數(shù)據(jù)映射到覆蓋層和用于對(duì)覆蓋層的選擇和維護(hù),所述覆蓋層用于存儲(chǔ)寫過濾數(shù)據(jù)。所述驅(qū)動(dòng)程序?qū)硬捎肳indows磁盤過濾的驅(qū)動(dòng)設(shè)備,在所述驅(qū)動(dòng)程序?qū)又惺褂檬褂梦④沇DK(Windows驅(qū)動(dòng)開發(fā)工具包)中的IoCreateDevice函數(shù)創(chuàng)建一個(gè)用于驅(qū)動(dòng)程序?qū)雍蛻?yīng)用程序?qū)又g通信的名稱為“IpedDevice”的設(shè)備。因?yàn)轵?qū)動(dòng)程序?qū)硬捎肳indows磁盤過濾的驅(qū)動(dòng)設(shè)備,所以用戶態(tài)的應(yīng)用程序與之自由通信比較困難,而所述“IpedDevice” 就是專門用來(lái)驅(qū)動(dòng)程序?qū)优c應(yīng)用程序?qū)又g的通信。用戶層通過微軟提供的API接口函數(shù) DeviceIoControl調(diào)用驅(qū)動(dòng)程序?qū)拥墓δ?,通信流程如圖3所示。應(yīng)用程序?qū)拥某绦蚋鞣N操作的流程如圖4所示,所述應(yīng)用程序?qū)诱{(diào)用支持庫(kù)相應(yīng)的函數(shù)接口,然后使用DeciceloControl (調(diào)用接口)函數(shù)通過“ IpedDevice”調(diào)用驅(qū)動(dòng)程序?qū)拥南鄳?yīng)接口完成相應(yīng)的功能。所述覆蓋層包括內(nèi)存覆蓋層、獨(dú)立硬盤覆蓋層、非獨(dú)立硬盤覆蓋層。如圖5所示, 本保護(hù)系統(tǒng)根據(jù)配置信息庫(kù)選擇啟用的覆蓋層,當(dāng)啟用內(nèi)存覆蓋層時(shí),優(yōu)先使用內(nèi)存覆蓋層,當(dāng)內(nèi)存覆蓋層的內(nèi)存使用量達(dá)到設(shè)置值的上限時(shí),自動(dòng)切換為使用硬盤覆蓋層,保障讀寫操作正常,當(dāng)內(nèi)存覆蓋層的內(nèi)存被程序釋放后又可以自動(dòng)切換為內(nèi)存覆蓋層,以加快讀寫速度,在使用硬盤覆蓋層時(shí),若存在獨(dú)立的硬盤覆蓋層,則優(yōu)先使用獨(dú)立的硬盤覆蓋層。數(shù)據(jù)提交是指將保存在覆蓋層中的寫過濾數(shù)據(jù)寫入到被保護(hù)分區(qū)真實(shí)的目標(biāo)扇區(qū)中,使本次開機(jī)后的所有操作能夠被保存下來(lái),不會(huì)因?yàn)榇疟P保護(hù)系統(tǒng)的寫過濾而使修改失效,在執(zhí)行了提交數(shù)據(jù)功能后,在用戶使用層面上,被保護(hù)分區(qū)就和沒有被保護(hù)時(shí)是一樣的。此功能在用戶需要保存本次數(shù)據(jù)時(shí)是很有用的,不需要用戶必須關(guān)閉保護(hù)然后再更新數(shù)據(jù)。如圖6為提交算法的流程,數(shù)據(jù)提交算法分為內(nèi)存覆蓋層提交算法、獨(dú)立硬盤覆蓋層提交算法、非獨(dú)立硬盤覆蓋層提交算法,提交算法會(huì)自動(dòng)根據(jù)覆蓋層類型調(diào)用相應(yīng)的算法進(jìn)行數(shù)據(jù)提交。非獨(dú)立覆蓋層提交算法因?yàn)楦采w層數(shù)據(jù)就是保存在被保護(hù)分區(qū)的剩余空間中,所以在提交數(shù)據(jù)時(shí),若目標(biāo)扇區(qū)已經(jīng)作為覆蓋層使用,則必須進(jìn)行扇區(qū)備份,然后再提交數(shù)據(jù)。本保護(hù)系統(tǒng)的操作過程1、安裝升騰保護(hù)模式軟件并重啟系統(tǒng)。2、打開軟件設(shè)置界面,選擇要進(jìn)行保護(hù)的分區(qū),然后再重啟系統(tǒng)。3、系統(tǒng)重啟后被保護(hù)分區(qū)已在保護(hù)中,所有對(duì)該分區(qū)上數(shù)據(jù)的修改在系統(tǒng)重啟后都無(wú)效。4、對(duì)于被保護(hù)分區(qū),若希望重啟后數(shù)據(jù)不丟失,可以在軟件界面中對(duì)被保護(hù)分區(qū)執(zhí)行提交數(shù)據(jù)功能。5、如緩存寫過濾數(shù)據(jù)的覆蓋層設(shè)置等高級(jí)功能也可以在軟件界面中設(shè)置。以上所述,僅為本發(fā)明較佳實(shí)施例而已,故不能依此限定本發(fā)明實(shí)施的范圍,即依本發(fā)明專利范圍及說明書內(nèi)容所作的等效變化與修飾,皆應(yīng)仍屬本發(fā)明涵蓋的范圍內(nèi)。
權(quán)利要求
1.一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),其特征在于它包括從上到下依次連接通信的應(yīng)用程序?qū)印⒅С謳?kù)、驅(qū)動(dòng)程序?qū)印⒏采w層,所述驅(qū)動(dòng)程序?qū)臃謩e通信連接到磁盤的被保護(hù)分區(qū)和配置信息庫(kù),所述應(yīng)用程序?qū)邮怯脩魧?duì)本保護(hù)系統(tǒng)進(jìn)行操作和管理的接口,所述支持庫(kù)是對(duì)應(yīng)用程序?qū)拥姆庋b,所述驅(qū)動(dòng)程序?qū)佑糜趯?duì)磁盤的寫過濾數(shù)據(jù)映射到覆蓋層和用于對(duì)覆蓋層的選擇和維護(hù),所述覆蓋層用于存儲(chǔ)寫過濾數(shù)據(jù);所述驅(qū)動(dòng)程序?qū)硬捎昧?Windows磁盤過濾的驅(qū)動(dòng)設(shè)備,在所述驅(qū)動(dòng)程序?qū)又惺褂?IoCreateDevice創(chuàng)建一個(gè)用于驅(qū)動(dòng)程序?qū)雍蛻?yīng)用程序?qū)又g通信的設(shè)備“IpedDevice”, 所述應(yīng)用程序?qū)诱{(diào)用支持庫(kù)相應(yīng)的函數(shù)接口,然后使用DeciceloControl函數(shù)通過 “IpedDevice”調(diào)用驅(qū)動(dòng)程序?qū)拥南鄳?yīng)接口完成相應(yīng)的功能。
2.根據(jù)權(quán)利要求1所述的一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),其特征在于所述覆蓋層包括內(nèi)存覆蓋層、獨(dú)立硬盤覆蓋層、非獨(dú)立硬盤覆蓋層。
3.根據(jù)權(quán)利要求2所述的一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),其特征在于所述保護(hù)系統(tǒng)根據(jù)配置信息庫(kù)選擇啟用的覆蓋層,當(dāng)啟用內(nèi)存覆蓋層時(shí),優(yōu)先使用內(nèi)存覆蓋層,當(dāng)內(nèi)存覆蓋層的內(nèi)存使用量達(dá)到設(shè)置值的上限時(shí),自動(dòng)切換為使用硬盤覆蓋層,保障讀寫操作正常,當(dāng)內(nèi)存覆蓋層的內(nèi)存被程序釋放后又可以自動(dòng)切換為內(nèi)存覆蓋層,以加快讀寫速度,在使用硬盤覆蓋層時(shí),若存在獨(dú)立的硬盤覆蓋層,則優(yōu)先使用獨(dú)立的硬盤覆蓋層。
全文摘要
本發(fā)明提供一種基于寫過濾技術(shù)的磁盤保護(hù)系統(tǒng),它包括從上到下依次連接的應(yīng)用程序?qū)?、支持?kù)、驅(qū)動(dòng)程序?qū)?、覆蓋層,所述驅(qū)動(dòng)程序?qū)臃謩e通信連接到磁盤的被保護(hù)分區(qū)和配置信息庫(kù),所述應(yīng)用程序?qū)邮怯脩魧?duì)本保護(hù)系統(tǒng)進(jìn)行操作和管理的接口,所述支持庫(kù)是對(duì)應(yīng)用程序?qū)拥姆庋b,所述驅(qū)動(dòng)程序?qū)佑糜趯?duì)磁盤的寫過濾數(shù)據(jù)映射到覆蓋層和用于對(duì)覆蓋層的選擇和維護(hù),所述覆蓋層用于存儲(chǔ)寫過濾數(shù)據(jù),所述驅(qū)動(dòng)程序?qū)硬捎昧薟indows磁盤過濾的驅(qū)動(dòng)設(shè)備,在所述驅(qū)動(dòng)程序?qū)又袆?chuàng)建一個(gè)設(shè)備“IpedDevice”。本發(fā)明能夠在Windows XP和Windows 7操作系統(tǒng)上實(shí)現(xiàn)磁盤分區(qū)保護(hù)功能,同時(shí)解決受限于物理內(nèi)存大小的問題。
文檔編號(hào)G06F3/06GK102289624SQ20111012819
公開日2011年12月21日 申請(qǐng)日期2011年5月16日 優(yōu)先權(quán)日2011年5月16日
發(fā)明者張輝 申請(qǐng)人:福建升騰資訊有限公司