一种实现对文件变化区域监视的方法

文档序号:6453340阅读:165来源:国知局
专利名称:一种实现对文件变化区域监视的方法
技术领域
本发明涉及计算机技术领域,更确切地说是涉及计算机技术领域中的一种实现对文件变化区域监视的方法。
背景技术
Windows操作系统是现在最常见的微机操作系统,用户在使用基于Windows操作系统的计算机时,如果需要对某些数据进行实时备份,则通常采用的方法是启动线程,通过线程监视以实现文件备份。在实现文件备份时,线程监视文件的方法很简单,通过比较文件的大小、修改时间等简单的属性监视该文件是否改变,如果改变了,则备份该文件。
通过线程进行文件备份实现起来非常简单,但是,由于线程只对文件的大小、修改时间等简单的属性进行监视和比较,而不知道文件具体是哪个区域有了变化,因此需要备份整个文件,这样需要占用很大的硬盘空间,且对整个文件进行备份需要花费较长的时间,在备份数据库文件等大型文件时这个问题更为突出。所以说,现有的线程对文件监视的方法不是一个好的监视方法,无法实现对文件的变化区域的监视。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现文件变化区域监视的方法,使在文件发生变化时,能够得知文件改变的具体区域。
为达到以上目的,本发明的技术方案是这样实现的一种实现对文件变化区域监视的方法,该方法包括以下步骤a.获取I/O管理器创建的、与文件对应的I/O请求包(IRP);
b.记录IRP中该文件的文件名及文件变化区域信息。
所述步骤b之前进一步包括,b’.根据IRP中的记录信息判断该文件是否满足预先设置的文件处理规则,如果满足,则进入步骤b,否则,将IRP通过过滤器设备对象(Filter DO)提交给卷设备对象(VDO)。
所述文件处理规则包括处理修改、创建和删除的文件。
所述文件处理规则从上层应用程序获得,则所述步骤b进一步包括,生成包含文件变化区域的通知消息,并发送给该上层应用程序。
所述步骤b中进一步包括,b”.建立跟踪数据结构;所述IRP中的文件名及文件变化区域信息保存在该跟踪数据结构中。
所述步骤b”建立的跟踪数据结构中进一步包括文件的变化类型,则将IRP中的文件变化类型信息保存在该跟踪数据结构中。
所述跟踪数据结构中进一步包括文件的变化区域结构链表指针,则将IRP中的文件的变化区域结构链表指针保存在该跟踪数据结构中。
所述步骤b”之前进一步包括,b”1.判断是否存在该文件对应的跟踪数据结构,如果有,则直接更新该跟踪数据结构中的信息,否则,返回步骤b”。
所述步骤b中记录的文件变化区域包括文件变化的起始位置和修改大小信息。
本发明方案通过设置跟踪数据结构、对IRP进行分析,并将IRP中的信息保存在跟踪数据结构中,实现了对文件变化区域的监视。并且由于本发明对文件变化区域监视的过程不能由用户直接操作,因此可以避免在通过线程对文件进行监视时由于用户的误操作或操作系统错误导致监视出现遗漏的问题。
应用本发明方法还可以使对文件进行实时备份时,只备份文件的变化区域,提高备份文件的速度,并节省硬盘的空间。


图1为Windows根据用户访问请求作处理的过程示意图;图2为本发明实施例中监视驱动程序实现监视文件的流程图;图3为本发明实施例中利用监视驱动程序实现文件备份的流程图。
具体实施例方式
下面结合附图及具体实施例对本发明方法作进一步详细的说明。
首先对与本发明方案相关的技术作一个简单介绍。
Windows操作系统可以支持包括FAT、FAT32、NTFS、CDFS等众多不同类的文件系统。在Windows中,用户实现对这些文件系统对应文件的访问,包括创建、打开、读写、删除等操作,都是在I/O管理器的控制下,由与文件相关的文件系统驱动程序协同工作完成的,其中,文件系统驱动程序建立的设备对象包括控制设备对象(CDO)、卷设备对象(VDO)和过滤器设备对象(Filter DO),其中Filter DO又可以分为上层Filter DO,中层Filter DO和下层Filter DO。Windows根据用户访问请求作处理的过程参见图1,具体来说,用户首先向Windows发送对文件的访问信息,Windows得到该消息后,启动Windows API访问该文件对应的文件系统,Windows API向I/O管理器发送相关的消息,I/O管理器创建该文件对应的IRP,该IRP中包括该文件的文件名、被访问的区域及需要作的处理等,并将该IRP依次发送到Filter DO和VDO,由VDO对IRP进行处理,最终转变为对硬盘逻辑扇区的访问请求。
本发明方案即在I/O管理器和VDO之间的Filter DO中创建一个用于监视文件的监视驱动程序,Filter DO中可以分为三层,该监视驱动程序可以放置在任何一层。该监视驱动程序在对IRP中的信息进行分析并保存相关信息后,将该IRP再通过Filter DO发送给VDO,由VDO对IRP进行处理。由于监视驱动程序对IRP不作任何处理,因此不影响VDO对IRP的处理。该监视驱动程序实现监视文件的流程参见图2,实现监视的过程如下a.从I/O管理器中获取所要监视的文件对应的IRP;b.设置一个包括文件名、文件变化类型、变化区域结构链表指针、变化区域的起始位置及修改大小信息的跟踪数据结构;c.从该IRP中获取相应的信息,并将该信息保存到该跟踪数据结构对应各项中。
如果是连续地监视某个文件,该文件对应的跟踪数据结构可能已经存在,因此在进入步骤b之前,可以先判断该文件对应的跟踪数据结构是否已经存在,如果已经存在,则步骤c直接根据IRP中的信息更新跟踪数据结构中的相关信息,如果不存在,则进入步骤b。
本发明的监视驱动程序可以设置为由Windows在启动时直接启动,也可以设置为通过上层应用程序启动。下面举例对通过上层应用程序启动该监视驱动程序作说明。
如果把本发明的监视方法应用在文件备份中,则可以只对文件最小的变化区域进行备份,而不需要对整个文件进行备份。在应用本发明监视方法的文件备份过程中,需要对应地设置由用户启动并操作的用户态程序作为上层应用程序,并需要对监视驱动程序作相应的功能扩展,使用户可以通过该用户态程序启动监视驱动程序,并根据监视驱动程序的跟踪数据结构中的相关信息对文件的改变部分进行备份。该功能扩展包括监视驱动程序在建立跟踪数据结构后,生成包含文件改变区域信息的文件改变通知消息,并将该通知消息发送给用户态程序。
以将该监控驱动程序创建在上层Filter DO为例,整个实现文件备份的流程参见图3,实现备份的过程如下a.用户选择要备份的文件,根据需要确定文件相关的文件处理规则,并将需要备份的文件名信息及所确定的文件处理规则发送给监视驱动程序。
本实施例的文件处理规则即为备份规则,包括对修改的文件及新创建的文件进行备份,对删除的文件不进行备份。
b.监视驱动程序收到该文件名信息及备份规则后,从I/O管理器中获取该文件对应的IRP,并判断IRP中的文件变化类型信息是否满足备份规则,以确定是否需要建立该文件对应的跟踪数据结构,如果满足备份规则,则建立该文件对应的跟踪数据结构,在该结构中保存相关信息,并发送文件变化的通知消息给用户态程序,该通知消息中包含跟踪数据结构中的文件变化区域信息,之后将该IRP依次发送给该监控驱动程序下面的Filter DO和VDO,由VDO对IRP进行处理,如果不满足备份规则,则直接将该IRP发送给该监控驱动程序下面的Filter DO和VDO,由VDO进行处理。
本实施例中,如果IRP中的文件变化类型是删除文件,则监视驱动程序根据备份规则可知不需要进行备份,因此直接依次将该IRP发送给该监控驱动程序下面的Filter DO和VDO;如果IRP中的文件变化类型是修改文件或新创建文件,则监视驱动程序根据备份规则可知需要进行备份,因此需要执行步骤b中对应的操作。
c.用户态程序收到通知消息后,根据通知消息中的文件变化区域信息备份该变化部分。
使用本发明方案所提供的监视文件的方法,可以在文件改变时记录文件具体变化区域的相关信息,并且,由于监视驱动程序不能直接由用户启动或终止,因此可以避免用户的误操作,提高了监视文件的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现对文件变化区域监视的方法,其特征在于该方法包括以下步骤a.获取I/O管理器创建的、与文件对应的I/O请求包(IRP);b.记录IRP中该文件的文件名及文件变化区域信息。
2.根据权利要求1所述的方法,其特征在于所述步骤b之前进一步包括,b’.根据IRP中的记录信息判断该文件是否满足预先设置的文件处理规则,如果满足,则进入步骤b,否则,将IRP通过过滤器设备对象(Filter DO)提交给卷设备对象(VDO)。
3.根据权利要求2所述的方法,其特征在于,所述文件处理规则包括处理修改、创建和删除的文件。
4.根据权利要求2所述的方法,其特征在于,所述文件处理规则从上层应用程序获得,则所述步骤b进一步包括,生成包含文件变化区域的通知消息,并发送给该上层应用程序。
5.根据权利要求1所述的方法,其特征在于所述步骤b中进一步包括,b”.建立跟踪数据结构;所述IRP中的文件名及文件变化区域信息保存在该跟踪数据结构中。
6.根据权利要求5所述的方法,其特征在于,所述步骤b”建立的跟踪数据结构中进一步包括文件的变化类型,则将IRP中的文件变化类型信息保存在该跟踪数据结构中。
7.根据权利要求5所述的方法,其特征在于,所述跟踪数据结构中进一步包括文件的变化区域结构链表指针,则将IRP中的文件的变化区域结构链表指针保存在该跟踪数据结构中。
8.根据权利要求5所述的方法,其特征在于所述步骤b”之前进一步包括,b”1.判断是否存在该文件对应的跟踪数据结构,如果有,则直接更新该跟踪数据结构中的信息,否则,返回步骤b”。
9.根据权利要求1所述的方法,其特征在于,所述步骤b中记录的文件变化区域包括文件变化的起始位置和修改大小信息。
全文摘要
本发明公开了一种实现对文件变化区域监视的方法,该方法首先获取I/O管理器创建的、与文件对应的I/O请求包(IRP),并记录该文件的文件名及对应IRP中的文件变化区域信息,之后将该IRP通过过滤器对象(Filter DO)提交给卷设备对象(VDO)。该方法解决了现有技术中无法实现对文件的变化区域进行监视的问题,实现了对文件变化区域的监视,并且由于实现监视的过程不能由用户直接操作,因此可以避免由于用户的误操作或操作系统错误而导致监视出现遗漏的问题。
文档编号G06F11/30GK1542611SQ03124248
公开日2004年11月3日 申请日期2003年4月30日 优先权日2003年4月30日
发明者王卫, 鲍育卿, 陈长征, 王 卫 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1