欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法

文檔序號:6453340閱讀:198來源:國知局
專利名稱:一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,更確切地說是涉及計(jì)算機(jī)技術(shù)領(lǐng)域中的一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法。
背景技術(shù)
Windows操作系統(tǒng)是現(xiàn)在最常見的微機(jī)操作系統(tǒng),用戶在使用基于Windows操作系統(tǒng)的計(jì)算機(jī)時(shí),如果需要對某些數(shù)據(jù)進(jìn)行實(shí)時(shí)備份,則通常采用的方法是啟動(dòng)線程,通過線程監(jiān)視以實(shí)現(xiàn)文件備份。在實(shí)現(xiàn)文件備份時(shí),線程監(jiān)視文件的方法很簡單,通過比較文件的大小、修改時(shí)間等簡單的屬性監(jiān)視該文件是否改變,如果改變了,則備份該文件。
通過線程進(jìn)行文件備份實(shí)現(xiàn)起來非常簡單,但是,由于線程只對文件的大小、修改時(shí)間等簡單的屬性進(jìn)行監(jiān)視和比較,而不知道文件具體是哪個(gè)區(qū)域有了變化,因此需要備份整個(gè)文件,這樣需要占用很大的硬盤空間,且對整個(gè)文件進(jìn)行備份需要花費(fèi)較長的時(shí)間,在備份數(shù)據(jù)庫文件等大型文件時(shí)這個(gè)問題更為突出。所以說,現(xiàn)有的線程對文件監(jiān)視的方法不是一個(gè)好的監(jiān)視方法,無法實(shí)現(xiàn)對文件的變化區(qū)域的監(jiān)視。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)文件變化區(qū)域監(jiān)視的方法,使在文件發(fā)生變化時(shí),能夠得知文件改變的具體區(qū)域。
為達(dá)到以上目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法,該方法包括以下步驟a.獲取I/O管理器創(chuàng)建的、與文件對應(yīng)的I/O請求包(IRP);
b.記錄IRP中該文件的文件名及文件變化區(qū)域信息。
所述步驟b之前進(jìn)一步包括,b’.根據(jù)IRP中的記錄信息判斷該文件是否滿足預(yù)先設(shè)置的文件處理規(guī)則,如果滿足,則進(jìn)入步驟b,否則,將IRP通過過濾器設(shè)備對象(Filter DO)提交給卷設(shè)備對象(VDO)。
所述文件處理規(guī)則包括處理修改、創(chuàng)建和刪除的文件。
所述文件處理規(guī)則從上層應(yīng)用程序獲得,則所述步驟b進(jìn)一步包括,生成包含文件變化區(qū)域的通知消息,并發(fā)送給該上層應(yīng)用程序。
所述步驟b中進(jìn)一步包括,b”.建立跟蹤數(shù)據(jù)結(jié)構(gòu);所述IRP中的文件名及文件變化區(qū)域信息保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
所述步驟b”建立的跟蹤數(shù)據(jù)結(jié)構(gòu)中進(jìn)一步包括文件的變化類型,則將IRP中的文件變化類型信息保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
所述跟蹤數(shù)據(jù)結(jié)構(gòu)中進(jìn)一步包括文件的變化區(qū)域結(jié)構(gòu)鏈表指針,則將IRP中的文件的變化區(qū)域結(jié)構(gòu)鏈表指針保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
所述步驟b”之前進(jìn)一步包括,b”1.判斷是否存在該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu),如果有,則直接更新該跟蹤數(shù)據(jù)結(jié)構(gòu)中的信息,否則,返回步驟b”。
所述步驟b中記錄的文件變化區(qū)域包括文件變化的起始位置和修改大小信息。
本發(fā)明方案通過設(shè)置跟蹤數(shù)據(jù)結(jié)構(gòu)、對IRP進(jìn)行分析,并將IRP中的信息保存在跟蹤數(shù)據(jù)結(jié)構(gòu)中,實(shí)現(xiàn)了對文件變化區(qū)域的監(jiān)視。并且由于本發(fā)明對文件變化區(qū)域監(jiān)視的過程不能由用戶直接操作,因此可以避免在通過線程對文件進(jìn)行監(jiān)視時(shí)由于用戶的誤操作或操作系統(tǒng)錯(cuò)誤導(dǎo)致監(jiān)視出現(xiàn)遺漏的問題。
應(yīng)用本發(fā)明方法還可以使對文件進(jìn)行實(shí)時(shí)備份時(shí),只備份文件的變化區(qū)域,提高備份文件的速度,并節(jié)省硬盤的空間。


圖1為Windows根據(jù)用戶訪問請求作處理的過程示意圖;圖2為本發(fā)明實(shí)施例中監(jiān)視驅(qū)動(dòng)程序?qū)崿F(xiàn)監(jiān)視文件的流程圖;圖3為本發(fā)明實(shí)施例中利用監(jiān)視驅(qū)動(dòng)程序?qū)崿F(xiàn)文件備份的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明方法作進(jìn)一步詳細(xì)的說明。
首先對與本發(fā)明方案相關(guān)的技術(shù)作一個(gè)簡單介紹。
Windows操作系統(tǒng)可以支持包括FAT、FAT32、NTFS、CDFS等眾多不同類的文件系統(tǒng)。在Windows中,用戶實(shí)現(xiàn)對這些文件系統(tǒng)對應(yīng)文件的訪問,包括創(chuàng)建、打開、讀寫、刪除等操作,都是在I/O管理器的控制下,由與文件相關(guān)的文件系統(tǒng)驅(qū)動(dòng)程序協(xié)同工作完成的,其中,文件系統(tǒng)驅(qū)動(dòng)程序建立的設(shè)備對象包括控制設(shè)備對象(CDO)、卷設(shè)備對象(VDO)和過濾器設(shè)備對象(Filter DO),其中Filter DO又可以分為上層Filter DO,中層Filter DO和下層Filter DO。Windows根據(jù)用戶訪問請求作處理的過程參見圖1,具體來說,用戶首先向Windows發(fā)送對文件的訪問信息,Windows得到該消息后,啟動(dòng)Windows API訪問該文件對應(yīng)的文件系統(tǒng),Windows API向I/O管理器發(fā)送相關(guān)的消息,I/O管理器創(chuàng)建該文件對應(yīng)的IRP,該IRP中包括該文件的文件名、被訪問的區(qū)域及需要作的處理等,并將該IRP依次發(fā)送到Filter DO和VDO,由VDO對IRP進(jìn)行處理,最終轉(zhuǎn)變?yōu)閷τ脖P邏輯扇區(qū)的訪問請求。
本發(fā)明方案即在I/O管理器和VDO之間的Filter DO中創(chuàng)建一個(gè)用于監(jiān)視文件的監(jiān)視驅(qū)動(dòng)程序,F(xiàn)ilter DO中可以分為三層,該監(jiān)視驅(qū)動(dòng)程序可以放置在任何一層。該監(jiān)視驅(qū)動(dòng)程序在對IRP中的信息進(jìn)行分析并保存相關(guān)信息后,將該IRP再通過Filter DO發(fā)送給VDO,由VDO對IRP進(jìn)行處理。由于監(jiān)視驅(qū)動(dòng)程序?qū)RP不作任何處理,因此不影響VDO對IRP的處理。該監(jiān)視驅(qū)動(dòng)程序?qū)崿F(xiàn)監(jiān)視文件的流程參見圖2,實(shí)現(xiàn)監(jiān)視的過程如下a.從I/O管理器中獲取所要監(jiān)視的文件對應(yīng)的IRP;b.設(shè)置一個(gè)包括文件名、文件變化類型、變化區(qū)域結(jié)構(gòu)鏈表指針、變化區(qū)域的起始位置及修改大小信息的跟蹤數(shù)據(jù)結(jié)構(gòu);c.從該IRP中獲取相應(yīng)的信息,并將該信息保存到該跟蹤數(shù)據(jù)結(jié)構(gòu)對應(yīng)各項(xiàng)中。
如果是連續(xù)地監(jiān)視某個(gè)文件,該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu)可能已經(jīng)存在,因此在進(jìn)入步驟b之前,可以先判斷該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu)是否已經(jīng)存在,如果已經(jīng)存在,則步驟c直接根據(jù)IRP中的信息更新跟蹤數(shù)據(jù)結(jié)構(gòu)中的相關(guān)信息,如果不存在,則進(jìn)入步驟b。
本發(fā)明的監(jiān)視驅(qū)動(dòng)程序可以設(shè)置為由Windows在啟動(dòng)時(shí)直接啟動(dòng),也可以設(shè)置為通過上層應(yīng)用程序啟動(dòng)。下面舉例對通過上層應(yīng)用程序啟動(dòng)該監(jiān)視驅(qū)動(dòng)程序作說明。
如果把本發(fā)明的監(jiān)視方法應(yīng)用在文件備份中,則可以只對文件最小的變化區(qū)域進(jìn)行備份,而不需要對整個(gè)文件進(jìn)行備份。在應(yīng)用本發(fā)明監(jiān)視方法的文件備份過程中,需要對應(yīng)地設(shè)置由用戶啟動(dòng)并操作的用戶態(tài)程序作為上層應(yīng)用程序,并需要對監(jiān)視驅(qū)動(dòng)程序作相應(yīng)的功能擴(kuò)展,使用戶可以通過該用戶態(tài)程序啟動(dòng)監(jiān)視驅(qū)動(dòng)程序,并根據(jù)監(jiān)視驅(qū)動(dòng)程序的跟蹤數(shù)據(jù)結(jié)構(gòu)中的相關(guān)信息對文件的改變部分進(jìn)行備份。該功能擴(kuò)展包括監(jiān)視驅(qū)動(dòng)程序在建立跟蹤數(shù)據(jù)結(jié)構(gòu)后,生成包含文件改變區(qū)域信息的文件改變通知消息,并將該通知消息發(fā)送給用戶態(tài)程序。
以將該監(jiān)控驅(qū)動(dòng)程序創(chuàng)建在上層Filter DO為例,整個(gè)實(shí)現(xiàn)文件備份的流程參見圖3,實(shí)現(xiàn)備份的過程如下a.用戶選擇要備份的文件,根據(jù)需要確定文件相關(guān)的文件處理規(guī)則,并將需要備份的文件名信息及所確定的文件處理規(guī)則發(fā)送給監(jiān)視驅(qū)動(dòng)程序。
本實(shí)施例的文件處理規(guī)則即為備份規(guī)則,包括對修改的文件及新創(chuàng)建的文件進(jìn)行備份,對刪除的文件不進(jìn)行備份。
b.監(jiān)視驅(qū)動(dòng)程序收到該文件名信息及備份規(guī)則后,從I/O管理器中獲取該文件對應(yīng)的IRP,并判斷IRP中的文件變化類型信息是否滿足備份規(guī)則,以確定是否需要建立該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu),如果滿足備份規(guī)則,則建立該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu),在該結(jié)構(gòu)中保存相關(guān)信息,并發(fā)送文件變化的通知消息給用戶態(tài)程序,該通知消息中包含跟蹤數(shù)據(jù)結(jié)構(gòu)中的文件變化區(qū)域信息,之后將該IRP依次發(fā)送給該監(jiān)控驅(qū)動(dòng)程序下面的Filter DO和VDO,由VDO對IRP進(jìn)行處理,如果不滿足備份規(guī)則,則直接將該IRP發(fā)送給該監(jiān)控驅(qū)動(dòng)程序下面的Filter DO和VDO,由VDO進(jìn)行處理。
本實(shí)施例中,如果IRP中的文件變化類型是刪除文件,則監(jiān)視驅(qū)動(dòng)程序根據(jù)備份規(guī)則可知不需要進(jìn)行備份,因此直接依次將該IRP發(fā)送給該監(jiān)控驅(qū)動(dòng)程序下面的Filter DO和VDO;如果IRP中的文件變化類型是修改文件或新創(chuàng)建文件,則監(jiān)視驅(qū)動(dòng)程序根據(jù)備份規(guī)則可知需要進(jìn)行備份,因此需要執(zhí)行步驟b中對應(yīng)的操作。
c.用戶態(tài)程序收到通知消息后,根據(jù)通知消息中的文件變化區(qū)域信息備份該變化部分。
使用本發(fā)明方案所提供的監(jiān)視文件的方法,可以在文件改變時(shí)記錄文件具體變化區(qū)域的相關(guān)信息,并且,由于監(jiān)視驅(qū)動(dòng)程序不能直接由用戶啟動(dòng)或終止,因此可以避免用戶的誤操作,提高了監(jiān)視文件的安全性。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法,其特征在于該方法包括以下步驟a.獲取I/O管理器創(chuàng)建的、與文件對應(yīng)的I/O請求包(IRP);b.記錄IRP中該文件的文件名及文件變化區(qū)域信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟b之前進(jìn)一步包括,b’.根據(jù)IRP中的記錄信息判斷該文件是否滿足預(yù)先設(shè)置的文件處理規(guī)則,如果滿足,則進(jìn)入步驟b,否則,將IRP通過過濾器設(shè)備對象(Filter DO)提交給卷設(shè)備對象(VDO)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件處理規(guī)則包括處理修改、創(chuàng)建和刪除的文件。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述文件處理規(guī)則從上層應(yīng)用程序獲得,則所述步驟b進(jìn)一步包括,生成包含文件變化區(qū)域的通知消息,并發(fā)送給該上層應(yīng)用程序。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟b中進(jìn)一步包括,b”.建立跟蹤數(shù)據(jù)結(jié)構(gòu);所述IRP中的文件名及文件變化區(qū)域信息保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述步驟b”建立的跟蹤數(shù)據(jù)結(jié)構(gòu)中進(jìn)一步包括文件的變化類型,則將IRP中的文件變化類型信息保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述跟蹤數(shù)據(jù)結(jié)構(gòu)中進(jìn)一步包括文件的變化區(qū)域結(jié)構(gòu)鏈表指針,則將IRP中的文件的變化區(qū)域結(jié)構(gòu)鏈表指針保存在該跟蹤數(shù)據(jù)結(jié)構(gòu)中。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于所述步驟b”之前進(jìn)一步包括,b”1.判斷是否存在該文件對應(yīng)的跟蹤數(shù)據(jù)結(jié)構(gòu),如果有,則直接更新該跟蹤數(shù)據(jù)結(jié)構(gòu)中的信息,否則,返回步驟b”。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟b中記錄的文件變化區(qū)域包括文件變化的起始位置和修改大小信息。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)對文件變化區(qū)域監(jiān)視的方法,該方法首先獲取I/O管理器創(chuàng)建的、與文件對應(yīng)的I/O請求包(IRP),并記錄該文件的文件名及對應(yīng)IRP中的文件變化區(qū)域信息,之后將該IRP通過過濾器對象(Filter DO)提交給卷設(shè)備對象(VDO)。該方法解決了現(xiàn)有技術(shù)中無法實(shí)現(xiàn)對文件的變化區(qū)域進(jìn)行監(jiān)視的問題,實(shí)現(xiàn)了對文件變化區(qū)域的監(jiān)視,并且由于實(shí)現(xiàn)監(jiān)視的過程不能由用戶直接操作,因此可以避免由于用戶的誤操作或操作系統(tǒng)錯(cuò)誤而導(dǎo)致監(jiān)視出現(xiàn)遺漏的問題。
文檔編號G06F11/30GK1542611SQ03124248
公開日2004年11月3日 申請日期2003年4月30日 優(yōu)先權(quán)日2003年4月30日
發(fā)明者王衛(wèi), 鮑育卿, 陳長征, 王 衛(wèi) 申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
乡城县| 韶山市| 化隆| 池州市| 蒙城县| 永济市| 雷州市| 安化县| 永清县| 景德镇市| 哈尔滨市| 北宁市| 临西县| 久治县| 延长县| 兖州市| 高淳县| 万盛区| 崇信县| 尉氏县| 北川| 甘南县| 庆城县| 尼勒克县| 仁怀市| 筠连县| 茶陵县| 永丰县| 绥棱县| 靖安县| 蓬溪县| 绥中县| 郴州市| 措勤县| 涞水县| 黄陵县| 分宜县| 嵊泗县| 兴化市| 光山县| 乌拉特前旗|