一种文件私有缓存建立方法和装置制造方法
【专利摘要】本发明涉及一种文件私有缓存的建立方法及装置,装置主要包括策略判定模块和文件私有缓存器模块,具体方法为:1)在操作系统内核拦截所有IRP请求;2)根据IRP策略判定条件:IRP类型、进程唯一标识、文件路径标识以及文件内容选择出需要使用文件私有缓存的IRP请求,建立私有缓存器;3)执行文件私有缓存的IRP请求,并且将结果返回操作系统内核。本发明中文件私有缓存与文件系统缓存同时存在能够解决同一文件不同应用内容区分产品与操作系统文件缓存处理之间的强耦合性问题;同时文件私有缓存的操作方式与文件系统缓存完全相同,对于应用软件文件操作方式和文件信息没有任何改变,解决了不同应用程序访问同一文件的一致性问题。
【专利说明】一种文件私有缓存建立方法和装置
【技术领域】
[0001]本发明涉及文件缓存建立方法和装置,特别是文件私有缓存的方法和装置,属于文件缓存领域。
【背景技术】
[0002]Windows操作系统为了提高应用程序访问文件的效率,为单个文件提供了缓存机制,这种缓存机制对单个文件只有一份缓存。但是目前对于同一文件的不同应用区分内容的广品都存在以下缺陷:
[0003]与操作系统的耦合性高导致文件破坏:传统的同一文件内容区分产品与文件系统缓存器共用单个文件缓存,这类型产品对缓存数据的操作会导致文件缓存中的数据与文件磁盘中的数据不一致,最终导致文件破坏。
[0004]应用程序访问同一文件的不一致性导致应用程序无法工作:传统的同一文件内容区分产品对非保护应用程序采用拒绝或者欺骗的处理方式,这类型处理方式导致不同应用程序的同一操作在同一文件的不一致;同时内容区分产品必须根据文件的运行时缓存状态对应用程序的访问做一致性控制,这类型控制导致同一应用程序的同一操作在不同时间访问同一文件的不一致;这两种不一致性导致应用程序对文件的同一类型操作有不同结果,最终导致应用程序无法工作。
[0005]以终端透明加解密产品为例,传统的数字计算机系统终端透明加解密提供了一种数据防泄密的方法,此方法对受保护应用程序和非受保护应用程序区分文件内容,非受保护应用程序读取到的加密文件数据始终是密文。但是使用传统单缓存技术的透明加解密产品与文件系统缓存器共用单个文件缓存,透明加解密产品处理的文件缓存中的数据是明文,而文件系统处理的文件缓存中的数据是密文。因此使用传统单缓存技术的透明加解密产品为了保证文件在缓存中的状态准确,必须进行频繁的缓存切换,这种频繁切换在特殊情况下很容易导致文件破坏。更进一步,使用传统单缓存技术的透明加解密产品为了确保缓存状态的准确,会禁止受保护应用程序和非受保护应用程序同时访问同一加密文件,这种控制方式很可能导致某一应用程序无法正常工作。
【发明内容】
[0006]文件私有缓存作为本发明提及一个新的概念提出,文件私有缓存定义为与文件系统缓存独立的并且具有文件系统缓存同样功能和属性的缓存实现,并且文件私有缓存与文件系统缓存对于同一个文件允许同时存在。
[0007]同时文件私有缓存器作为本发明提及的一个新的概念提出,文件私有缓存器定义为处理文件私有缓存的功能模块。
[0008]本发明提供了 一种文件私有缓存建立的方法,解决文件内容区分产品导致文件内容破坏问题,同时解决为了维护运行时文件缓存状态导致的应用程序无法工作问题。
[0009]本发明还提供了 一种文件私有缓存建立的装置,解决文件内容区分产品导致文件内容破坏问题,同时解决为了维护运行时文件缓存状态导致的应用程序无法工作问题。
[0010]一种文件私有缓存的建立方法,其步骤包括:
[0011]I)在操作系统内核拦截所有IRP请求,发起IRP请求的应用程序无需修改任何功能、接口、模块,文件私有缓存器支持所有软件、所有类型的IRP请求;
[0012]2)根据IRP策略判定条件:IRP类型、进程唯一标识、文件路径标识以及文件内容选择出需要使用文件私有缓存的IRP请求,建立私有缓存器;
[0013]3)执行文件私有缓存的IRP请求,并且将结果返回操作系统内核。
[0014]更进一步,文件私有缓存处理的IRP请求类型优选于以下的一种或者多种:文件打开、文件关闭、文件读写。
[0015]更进一步,将所述IRP类型、文件路径标识作为所述IRP请求相关联的过滤回调处
理信息。
[0016]更进一步,建立所述私有缓存器对应文件的创建与关联过程为:
[0017]I)从IO管理器接收IRP请求,解析IRP请求中过滤回调处理信息;
[0018]2)根据IRP策略选出需要使用文件私有缓存的IRP请求,并查找文件私有缓存器列表中是否存在该文件;
[0019]3)创建文件私有缓存器或直接将文件私有缓存器与当前IRP请求的文件对象关联,文件私有缓存更新IRP请求过滤回调信息中的文件对象计数、文件对象访问权限以及文件对象与文件私有缓存器的关联关系。
[0020]4)新创建的文件私有缓存器包含系统标准文件唯一标识头;
[0021]5)若不需要使用私有缓存,则转交给文件系统缓存处理,通过设置一个IRP请求过滤回调处理信息的值,I/o管理器自动转到文件系统内核处理;如果转由操作系统内核处理后,则文件操作过程将使用文件系统缓存。
[0022]更进一步,系统根据所述系统标准文件唯一标识头识别文件私有缓存,所述系统标准文件唯一标识头为一个标准的文件标识;系统其它模块通过该标准与文件私有缓存进行标准交互。
[0023]更进一步,所述文件私有缓存采用如下方法支持系统相同配置的预读和延迟写:
[0024]I)系统缓存管理发起预读或延迟写请求后文件私有缓存接收文件预读或延迟写请求;所述文件私有缓存获取文件对象关联的文件私有缓存的锁;
[0025]2)所述文件私有缓存处理文件预读或延迟写过程,并且更新文件预读或延迟写过滤回调参数信息,所述文件私有缓存释放文件对象关联的文件私有缓存的锁;
[0026]3)结束预读或延迟写过程并且将预读或延迟写过程的状态值返回给系统缓存管理。
[0027]更进一步,所述文件私有缓存与文件系统缓存互相独立,且对于同一文件允许文件私有缓存与文件系统缓存同时存在。
[0028]更进一步,根据所述IRP策略判定条件选择出需要使用文件私有缓存的IRP请求,并照如下过程进行检查:
[0029]I)检查IRP请求相关联的过滤回调处理信息中的进程唯一标识,确认该进程唯一标识是否需要做文件私有缓存处理;
[0030]2)检查IRP请求相关联的过滤回调处理信息中的文件对象,确认该文件对象是否已经做文件私有缓存处理;
[0031]3)检查IRP请求相关联的过滤回调处理信息中的文件路径标识,确认该文件路径标识是否正在进行文件私有缓存处理;
[0032]4)检查IRP请求相关联的过滤回调处理信息中的文件内容,确认该文件是否需要做文件私有缓存器处理;
[0033]5)所述步骤1)-4)中任意一步检查出需要私有缓存,则停止检查;所述步骤1)-4)中如果转由操作系统内核处理后,文件操作过程使用文件系统缓存。
[0034]本发明还提出一种文件私有缓存装置,其特征在于,由策略判定模块和文件私有缓存器模块组成,
[0035]所述策略判定模块包括:策略接收存储单元、IRP请求过滤回调信息解析单元以及IRP请求判定单元;
[0036]所述策略接收存储单元用于接收策略;
[0037]所述IRP请求过滤回调信息解析单元解析IRP请求中的过滤回调信息;
[0038]所述IRP请求判定单元判定是否使用文件私有缓存器;
[0039]所述文件私有缓存器模块用于根据IRP请求的类别,对不同的策略判定模块的判定结果进行处理;如果使用文件私有缓存器则处理该IRP请求并且将处理结果状态值返回给操作系统内核,如果不使用文件私有缓存器则直接转交操作系统系统处理;此模块包括:文件私有缓存器列表维护单元、文件私有缓存器处理单元、文件名称提供单元;
[0040]所述文件私有缓存器列表维护单元,用于将所有文件私有缓存器对应的文件路径存储在一个全局列表中,其中列表项包括文件全路径、文件私有缓存器数据信息;
[0041]所述文件私有缓存器处理单元,提供文件私有缓存器创建功能、文件私有缓存器与文件对象关联功能、文件私有缓存器支持系统预读功能、文件私有缓存器支持系统延迟与功能;
[0042]所述名称提供器单元,用于内核其它模块根据与文件私有缓存器关联的文件对象查询文件名称。
[0043]更进一步,所述文件私有缓存器提供创建功能,当文件第一次打开时根据IRP判定条件创建文件私有缓存器;所述文件私有缓存器提供与文件对象关联功能,首先根据文件对象的全路径从文件私有缓存器列表中查找与文件对象唯一关联的文件私有缓存器,然后更新文件对象的缓存相关信息、文件对象权限相关信息,最后将文件对象添加到文件私有缓存器中文件对象列表。
[0044]本发明的有益效果:
[0045]本发明的目标是实现一种文件私有缓存建立和使用,这种文件私有缓存可以文件系统缓存并存,并且这种文件私有缓存与文件系统缓存在与操作系统其它模块交互过程完全等价。在本发明文件私有缓存的方法和装置中,文件私有缓存与文件系统缓存同时存在能够解决同一文件不同应用内容区分产品与操作系统文件缓存处理之间的强耦合性问题;同时文件私有缓存的操作方式与文件系统缓存完全相同,对于应用程序文件操作方式和文件信息没有任何改变,解决了应用程序访问同一文件的一致性问题。本发明提供的方法如果应用在透明加解密产品中(但不限于透明加解密产品这一种应用范围),不需要对文件缓存进行频繁切换,同时不强制禁止受保护应用程序和非受保护应用程序同时访问同一加密文件。
【专利附图】
【附图说明】
[0046]图1为本发明文件私有缓存建立方法中文件私有缓存和文件系统的关系结构示意图;
[0047]图2为本发明文件私有缓存建立方法一实施例中文件私有缓存建立与关联过程流程图;
[0048]图3a是本发明文件私有缓存建立方法一实施实例中文件私有缓存器支持文件预读过程示意图;
[0049]图3b是本发明文件私有缓存建立方法一实施实例中文件私有缓存器支持文件延迟写过程示意图;
[0050]图4是本发明文件私有缓存建立方法一实施实例中文件名称提供器流程图;
[0051]图5是本发明文件私有缓存建立方法一实施实例中文件私有缓存器数据结构图;
[0052]图6是本发明文件私有缓存装置一实施实例中文件私有缓存器模块组件关系图。
[0053]图7是本发明文件私有缓存建立方法一实施实例中文件私有缓存流程示意图。
【具体实施方式】
[0054]为使本发明的目的和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。
[0055]图7是本发明文件私有缓存建立方法一实施实例中文件私有缓存流程示意图。首先在操作系统内核拦截所有IRP请求;然后根据IRP策略判定条件=IRP类型、进程唯一标识、文件路径标识以及文件内容选择出需要使用文件私有缓存的IRP请求,建立私有缓存;最后执行使用文件私有缓存的IRP请求,并且将结果返回操作系统内核。
[0056]如图7所示本发明的技术方案是这样实现的;
[0057]一种文件私有缓存建立的方法,其关键在于文件私有缓存器与文件系统缓存器互相独立,并且对于同一文件允许文件私有缓存与文件系统缓存同时存在;该方法还包括但是不限于以下过程:
[0058]步骤1、从操作系统内核拦截所有IRP请求(I/O Request Packet);
[0059]步骤2、将这些拦截到的IRP请求与IRP策略判定条件进行决策是否使用文件私有缓存器,其中IRP策略判定条件基于IRP类型、进程唯一标识、文件路径标识、文件内容;如果使用文件私有缓存器执行步骤3,否则转由操作系统内核继续处理;
[0060]步骤3、在文件私有缓存器上执行这些IRP请求,并且将结果状态返回给操作系统内核。
[0061]为了使本方法更加明确,这里对文件私有缓存器处理过程做详细说明:
[0062]IRP请求全称为I/O Request Packet (I/O请求包),文件私有缓存器处理的IRP请求类型包括但不限于以下类型:文件打开、文件关闭、文件读写等;
[0063]IRP策略判定条件包括:IRP类型、进程唯一标识、文件路径标识、文件内容,其中IRP类型、文件路径标识被接收为与这些IRP请求相关联的过滤回调处理信息。
[0064]IRP请求与IRP策略判定条件进行决策过程包括以下步骤:[0065]a)在操作系统拦截所有IRP请求;
[0066]b)检查IRP请求相关联的过滤回调处理信息中的进程唯一标识,确认该进程唯一标识是否需要做文件私有缓存器处理;如果需要做文件私有缓存器处理,转由文件私有缓存器处理;否则转由步骤c)处理;
[0067]c)检查IRP请求相关联的过滤回调处理信息中的文件对象,确认该文件对象是否已经做文件私有缓存器处理;如果已经做文件私有缓存器处理,转由文件私有缓存器处理;否则转由步骤d)处理;
[0068]d)检查IRP请求相关联的过滤回调处理信息中的文件路径标识,确认该文件路径标识是否正在进行文件私有缓存处理;如果正在做文件私有缓存器处理,转由文件私有缓存器处理;否则转由步骤e)处理;
[0069]e)检查IRP请求相关联的过滤回调处理信息中的文件内容,确认该文件是否需要做文件私有缓存器处理;如果已经做文件私有缓存器处理,转由文件私有缓存器处理;否则转由操作系统内核处理;如果转由操作系统内核处理后,那么文件操作过程将使用文件系统缓存。
[0070]在本方法中对所有类型IRP请求做处理,每种类型的IRP请求处理方式不尽相同,上述决策过程步骤适用于所有类型IRP请求。
[0071]在本发明一实施例中操作系统内核拦截过程采用标准操作系统功能接口。
[0072]在本发明一实施例中对于每一个文件打开操作类型的IRP请求都会建立独立的文件句柄与该文件私有缓存器关联,文件句柄和文件私有缓存器是多对一的关系。
[0073]在本发明一实施例中在文件私有缓存器上执行这些IRP请求过程包括以下步骤:
[0074]I)检查IRP请求相关联的过滤回调处理信息以确认是否已经创建该文件的私有
缓存,其中对于一个文件存在唯--个文件私有缓存与之对应;如果已经创建文件私有缓
存,则转由步骤3)处理;否则转由步骤2)处理;
[0075]2)根据IRP请求相关联的过滤回调处理信息创建该文件的文件私有缓存,同时建立文件与文件私有缓存的一一对应关系;
[0076]3)在文件私有缓存器上执行这些IRP请求,执行过程与操作系统标准文件操作过程相同,不再赘述;
[0077]所有文件私有缓存器处理的IRP请求返回处理结果状态给操作系统系统内核,该处理结果状态用以说明此次IRP请求是否执行成功;如果处理失败,该结果状态值说明具体失败原因;该结果状态值与操作系统标准对应。
[0078]本发明还提出的一种文件私有缓存建立的装置,其关键在于建立和使用与文件系统相对独立文件私有缓存,并且对于同一文件允许文件私有缓存与文件系统缓存同时存在;该装置包括:
[0079]策略判定模块,用于接收策略、解析IRP请求中的过滤回调信息,然后根据两者关系做出判定是否使用文件私有缓存器;
[0080]文件私有缓存器模块,用于根据IRP请求的类别,对不同的策略判定模块的判定结果进行处理;如果使用文件私有缓存器则处理该IRP请求并且将处理结果返回给操作系统内核,如果不使用文件私有缓存器则直接转交操作系统系统处理。
[0081]为使本装置更加明确,这里对文件私有缓存器装置的各个部分做详细说明:[0082]在策略判定模块中包含:策略接收存储单元、IRP请求过滤回调信息解析单元、IRP请求判定单元;
[0083]所述策略接收存储单元,用于接收和存储IRP判定策略;
[0084]所述IRP请求过滤回调信息解析单元,用于解析IRP请求对应的文件路径、IRP请求类型、IRP请求文件对象、IRP请求关联的文件私有缓存管理器对象、文件操作信息等;
[0085]所述IRP请求判定单元,用于决策是否使用文件私有缓存器,如果使用文件私有缓存器处理,则有文件私有缓存器处理IRP请求,否则交由文件系统缓存器处理。
[0086]在文件私有缓存器模块中包含:文件私有缓存器列表维护单元、文件私有缓存器处理单元、文件名称提供单元;
[0087]所述文件私有缓存器列表维护单元,对应的文件路径存储在一个全局列表中,其中列表项包括文件全路径、文件私有缓存器数据信息;
[0088]所述文件私有缓存器处理单元,包括文件私有缓存器创建功能、文件私有缓存器与文件对象关联功能、文件私有缓存器支持系统预读功能、文件私有缓存器支持系统延迟与功能。
[0089]其中的文件私有缓存器列表为一个按照文件全路径为参数处理的平衡二叉树,在对于唯一文件的IRP请求,包括不限于文件新建、文件查询、文件重命名、文件删除、文件关闭;都需要对列表进行更新。
[0090]在本发明一实施例中文件私有缓存器创建功能,当文件第一次打开或者创建根据IRP判定条件需要创建文集独立缓存时创建文件私有缓存器;创建过程首先申请并初始化非分页内存空间,然后向操作系统缓存管理器注册文件私有缓存器,最后将文件私有缓存器与文件全路径存入列表。
[0091]在本发明一实施例中文件私有缓存器与文件对象关联功能,首先根据文件对象的全路径从文件私有缓存器列表中查找与文件对象唯一关联的文件私有缓存器,然后更新文件对象的缓存相关信息、文件对象权限相关信息,最后将文件对象添加到文件私有缓存器中文件对象列表。
[0092]在本发明一实施例中文件私有缓存器支持系统预读功能,对于一个已经注册到操作系统缓存管理器的文件私有缓存管理器,当操作系统缓存管理器判决到需要预读文件提高系统性能时会调用文件私有缓存器的预读功能,文件私有缓存管理预读功能模块处理对应IRP请求,然后将处理结果状态值返回给操作系统缓存管理器。
[0093]在本发明一实施例中文件私有缓存器支持系统延迟写功能,对于一个已经注册到操作系统缓存管理器的文件私有缓存管理器,当操作系统缓存管理器判决到需要延迟写文件提高系统性能时会调用文件私有缓存器的延迟写功能,文件私有缓存管理预读功能模块处理对应IRP请求,然后将处理结果状态值返回给操作系统缓存管理器。
[0094]在本发明一实施例中名称提供器单元的内核其它模块根据与文件私有缓存器关联的文件对象查询文件名称时需要提供名称提供器单元;名称提供器单元查询文件私有缓存器列表获取文件全路径信息,然后返回文件全路径信息给内核其它模块。
[0095]本发明的执行环境是在操作系统内核,除非必要说明,以下所述的与文件私有缓存交互的模块都是在操作系统内核中。
[0096]本发明与应用程序无关,应用程序无需修改任何功能、接口、模块。[0097]在以下的详细描述中,已经给出了很多具体细节,例如特定的方法顺序、结构、元件已经连接体。然而应当理解的是,这个以及其它具体细节例如:公共常识、系统环境元素等不一一详尽说明。
[0098]图1为本发明文件私有缓存建立方法中文件私有缓存和文件系统的关系结构示意图;此关系结构图中表示文件私有缓存101与文件系统缓存105相互独立,并且两者可以共存;此关系图表示文件私有缓存101和文件系统缓存105都是从IRP管理器100接收IRP请求;文件私有缓存101和文件系统缓存105都是依赖文件系统102实现文件操作;文件私有缓存101和文件系统缓存105不直接依赖于物理磁盘,故文件私有缓存101与物理磁盘103无任何直接关系。
[0099]图1还表示出如果需通过文件私有缓存读取数据,那么需要依次通过IRP管理器100、文件私有缓存101、文件系统102和物理磁盘103,如果不需要通过文件私有缓存读取数据,那么需要依次通过IRP管理器100、文件系统缓存105、文件系统102和物理磁盘103 ;通过文件私有缓存写入数据过程相同;两条通路对应用程序是完全相等的,应用程序无需修改任何功能、接口、模块。
[0100]图2为本发明文件私有缓存建立方法一实施例中文件私有缓存建立与关联过程流程图;
[0101]步骤201文件私有缓存器从IO管理器接收IRP请求;
[0102]步骤202解析IRP过滤回调处理信息;
[0103]步骤203根据策略判断IRP请求是否需要使用私有缓存,如果是执行步骤204,否则执行步骤205 ;
[0104]步骤204查找文件私有缓存器列表中是否存在该文件,如果存在执行步骤206,否则执行步骤207 ;
[0105]步骤205转交给文件系统缓存器处理;
[0106]本步骤中,文件私有缓存器不需要处理这个IRP请求,设置一个IRP请求过滤回调处理信息的值后,IO管理器会自动转到文件系统缓存器处理;
[0107]步骤206将文件私有缓存器与当前IRP请求对象关联;
[0108]本步骤中,文件私有缓存器会更新IRP请求过滤回调信息中的缓存对象、文件唯一标识对象、文件读写权限等信息;在此过程中文件对象关联文件独立缓存器后,后续其它类型的IRP请求中的文件对象会带着已经更新过的文件缓存器,可以直接通过文件对象中附带的文件私有缓存器处理其它IRP请求;
[0109]步骤207创建文件私有缓存器,然后执行步骤206将新建的文件私有缓存器与文件对象关联;
[0110]本步骤中,新创建的文件私有缓存器包含系统标准文件唯一标识头,具体数据结构参见图5文件私有缓存器数据结构;
[0111]图5是本发明文件私有缓存建立方法一实施实例中文件私有缓存器数据结构图;该数据结构中首先包含一个系统标准文件唯一标识头,根据此标识头,系统其它模块可以识别文件私有缓存器为一个标准的文件标识;即由此操作系统其它模块通过此标准与文件私有缓存器进行一些标准交互,由此达到文件私有缓存与文件系统缓存完全等价;
[0112]步骤208结束IRP请求并且设置IRP请求处理状态值;[0113]步骤209返回给操作系统处理。
[0114]图3a是本发明文件私有缓存建立方法一实施实例中文件私有缓存器支持文件预读过程示意图;图3b是本发明文件私有缓存建立方法一实施实例中文件私有缓存器支持文件延迟写过程示意图。建立的私有文件私有缓存器支持系统相同配置的延迟写功能,由系统缓存管理器决策是否需要延迟写;其中建立的私有文件私有缓存器支持系统相同配置的预读功能,由系统缓存管理器决策是否需要预读。
[0115]本发明中文件私有缓存器支持系统相同配置的预读和缓存写,图3a是文件私有缓存器支持文件预读过程,图3b是文件私有缓存器支持文件延迟写过程;
[0116]上述文件私有缓存器支持文件预读过程步骤包括:
[0117]步骤301:系统缓存管理器发起预读请求;
[0118]步骤302:文件私有缓存接收文件预读请求;
[0119]步骤303:文件私有缓存获取文件对象关联的文件私有缓存器的锁;
[0120]步骤304:文件私有缓存处理文件预读过程,并且更新文件预读过滤回调参数信息;
[0121]步骤305:文件私有缓存释放文件对象关联的文件私有缓存器的锁;
[0122]步骤306:结束预读过程并且将预读过程的状态值返回给系统缓存管理器;
[0123]上述文件私有缓存器支持文件延迟写过程步骤包括:
[0124]步骤301’:系统缓存管理器发起延迟写请求;
[0125]步骤302’:文件私有缓存接收文件延迟写请求;
[0126]步骤303’:文件私有缓存获取文件对象关联的文件私有缓存器的锁;
[0127]步骤304’:文件私有缓存处理文件延迟写过程,并且更新文件延迟写过滤回调参数信息;
[0128]步骤305’:文件私有缓存释放文件对象关联的文件私有缓存器的锁;
[0129]步骤306’:结束延迟写过程并且将延迟写过程的文件私有缓存器状态值返回给系统缓存管理器。
[0130]图4是本发明文件私有缓存建立方法一实施实例中文件名称提供器流程图;
[0131]步骤401从回调接口中获取文件对象相关参数;
[0132]步骤402判断文件对象参数是否使用了文件私有缓存器;如果是执行步骤403,否则执行步骤404 ;
[0133]步骤403判断文件对象关联的文件私有缓存器是否在文件私有缓存器列表中,如果有执行步骤405,否则执行步骤406 ;
[0134]步骤404转交给文件系统处理获取文件名处理过程;
[0135]步骤405从文件私有缓存器列表中获取文件名称,并且更新文件对象相关参数;
[0136]步骤406从由文件私有缓存器发起从文件系统获取文件名称,然后更新文件对象参数;此步骤与步骤404有区别,步骤404直接返回给文件系统处理,并不更新文件对象中任何息;
[0137]步骤407文件缓存器处理文件名称后设置文件名称请求结果状态值;
[0138]步骤408返回给文件系统。
[0139]为实现本发明中的文件私有缓存的方法,本发明还提供了 一种文件私有缓存建立的装置,图6是本发明文件私有缓存建立方法一实施实例中文件私有缓存器模块组件关系图,该装置包括:策略判定模块607和文件私有缓存器处理模块608 ;
[0140]上述策略判定模块607,用于接收策略、解析IRP请求中的过滤回调信息,然后根据两者关系做出判定是否使用文件私有缓存器;
[0141]上述文件私有缓存器处理模块608,用于根据IRP请求的类别,对不同的策略判定模块的判定结果进行处理;如果使用文件私有缓存器则处理该IRP请求并且将处理结果状态值返回给操作系统内核,如果不使用文件私有缓存器则直接转交操作系统系统处理。
[0142]基于前文方法已经介绍的流程和文件私有缓存器结构,上述策略判定模块607包括:策略接收存储单元601、IRP请求过滤回调信息解析单元602、IRP请求判定单元603 ;
[0143]上述策略接收存储单元601,用于接收和存储IRP判定策略;
[0144]上述IRP请求过滤回调信息解析单元602,用户解析或者IRP请求对应的文件路径、IRP请求类型、IRP请求文件对象、IRP请求关联的文件私有缓存管理器对象、文件操作信息等;
[0145]上述IRP请求判定单元603,用于决策是否使用文件私有缓存器,如果IRP请求对应的文件路径或者IRP请求文件对象与文件私有缓存器有唯一对应关系,则使用文件私有缓存器处理IRP请求,否则交由文件系统缓存器处理。
[0146]基于前文方法已经介绍的流程和文件私有缓存器结构,上述的文件私有缓存器处理模块608包含:文件私有缓存器列表维护单元604、文件私有缓存器处理单元605、文件名称提供单元606 ;
[0147]上述文件私有缓存器列表维护单元604,所有文件私有缓存器对应的文件路径存储在一个全局列表中,列表项包括文件全路径、文件私有缓存器数据信息;
[0148]上述文件私有缓存器处理单元605,包括文件私有缓存器创建功能、文件私有缓存器与文件对象关联功能、文件私有缓存器支持系统预读功能、文件私有缓存器支持系统延迟与功能;
[0149]上述名称提供器单元606,内核其它模块根据与文件私有缓存器关联的文件对象查询文件名称时需要提供名称提供器单元;名称提供器单元查询文件私有缓存器列表获取文件全路径信息,然后返回文件全路径信息给内核其它模块。
[0150]下面给出一个本发明方法的一个具体实施例,在本实施例中不仅可以使用文件私有缓存器,同时能够做文件级别的同一文件不用应的文件内容处理。这里仅以私有缓存器关联文件对象过程为实施例,其它过程可由此过程推导得出;
[0151]如果不做额外说明,操作文件的可执行软件名称为WORD.ΕΧΕ,操作文件的全路径为 D:\TEMP\TEST.DOC ;
[0152]私有文件关联文件对象过程实施例:
[0153]Al、IO管理器对操作文件建立文件对象实例_FILE_0BJECT_TEST_D0C,然后发起文件打开或者新建IRP请求;
[0154]B1、文件私有缓存器截取IRP请求后,从IRP回调过滤信息中解析出当前访问的可执行软件和操作文件路径,并且与IRP策略判定条件决策,在此实施例中如果应用程序是WORD.EXE并且文件是D: \TEMP\TEST.DOC则执行Cl,否则转由操作系统处理;
[0155]Cl、关联文件私有缓存器到文件对象实例_FILE_0BJECT_TEST_D0C,更新文件对象中的兀素包括单不限于{FsContext, FsContext2, PrivateCacheMap, SectionObjectPointer};
[0156]D1、设置IRP请求过滤回调信息中10_STATUS_BL0CK区域的处理状态值;然后向IO管理器返回IRP请求已经处理标志。
[0157]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本法的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
【权利要求】
1.一种文件私有缓存的建立方法,其步骤包括: 1)在操作系统内核拦截所有IRP请求; 2)根据IRP策略判定条件:IRP类型、进程唯一标识、文件路径标识以及文件内容选择出需要使用文件私有缓存的IRP请求,建立私有缓存器; 3)执行文件私有缓存的IRP请求,并且将结果返回操作系统内核。
2.如权利要求1所述的文件私有缓存建立的方法,其特征在于,文件私有缓存处理的IRP请求类型优选于以下的一种或者多种:文件打开、文件关闭、文件读写。
3.如权利要求1所述的文件私有缓存建立的方法,其特征在于,将所述IRP类型、文件路径标识作为所述IRP请求相关联的过滤回调处理信息。
4.如权利要求1所述的文件私有缓存建立的方法,其特征在于,建立所述私有缓存器对应文件的创建与关联过程为: 1)从IO管理器接收IRP请求,解析IRP请求中过滤回调处理信息; 2)根据IRP策略选出需要使用文件私有缓存的IRP请求,并查找文件私有缓存器列表中是否存在该文件; 3)创建文件私有缓存器或直接将文件私有缓存器与当前IRP请求的文件对象关联,文件私有缓存更新I RP请求过滤回调信息中的文件对象计数、文件对象访问权限以及文件对象与文件私有缓存器的关联关系。
4)新创建的文件私有缓存器 包含系统标准文件唯一标识头; 5)若不需要使用私有缓存,则转交给文件系统缓存处理,通过设置一个IRP请求过滤回调处理信息的值,I/O管理器自动转到文件系统内核处理;如果转由操作系统内核处理后,则文件操作过程将使用文件系统缓存。
5.如权利要求4所述的文件私有缓存建立的方法,其特征在于,系统根据所述系统标准文件唯一标识头识别文件私有缓存,所述系统标准文件唯一标识头为一个标准的文件标识;系统其它模块通过该标准与文件私有缓存进行标准交互。
6.如权利要求1所述的文件私有缓存建立的方法,其特征在于,所述文件私有缓存采用如下方法支持系统相同配置的预读和延迟写: 1)系统缓存管理发起预读或延迟写请求后文件私有缓存接收文件预读或延迟写请求;所述文件私有缓存获取文件对象关联的文件私有缓存的锁; 2)所述文件私有缓存处理文件预读或延迟写过程,并且更新文件预读或延迟写过滤回调参数信息,所述文件私有缓存释放文件对象关联的文件私有缓存的锁; 3)结束预读或延迟写过程并且将预读或延迟写过程的状态值返回给系统缓存管理。
7.如权利要求1所述的文件私有缓存建立的方法,其特征在于,所述文件私有缓存与文件系统缓存互相独立,且对于同一文件允许文件私有缓存与文件系统缓存同时存在。
8.如权利要求1所述的文件私有缓存建立的方法,其特征在于,根据所述IRP策略判定条件选择出需要使用文件私有缓存的IRP请求,并照如下过程进行检查: 1)检查IRP请求相关联的过滤回调处理信息中的进程唯一标识,确认该进程唯一标识是否需要做文件私有缓存处理; 2)检查IRP请求相关联的过滤回调处理信息中的文件对象,确认该文件对象是否已经做文件私有缓存处理;3)检查IRP请求相关联的过滤回调处理信息中的文件路径标识,确认该文件路径标识是否正在进行文件私有缓存处理; 4)检查IRP请求相关联的过滤回调处理信息中的文件内容,确认该文件是否需要做文件私有缓存器处理; 5)所述步骤1)-4)中任意一步检查出需要私有缓存,则停止检查;所述步骤1)-4)中如果转由操作系统内核处理后,文件操作过程使用文件系统缓存。
9.一种文件私有缓存装置,其特征在于,由策略判定模块和文件私有缓存器模块组成, 所述策略判定模块包括:策略接收存储单元、IRP请求过滤回调信息解析单元以及IRP请求判定单元; 所述策略接收存储单元用于接收策略; 所述IRP请求过滤回调信息解析单元解析IRP请求中的过滤回调信息; 所述IRP请求判定单元判定是否使用文件私有缓存器; 所述文件私有缓存器模块用于根据IRP请求的类别,对不同的策略判定模块的判定结果进行处理;如果使用文件私有缓存器则处理该IRP请求并且将处理结果状态值返回给操作系统内核,如果不使用文件私有缓存器则直接转交操作系统系统处理;包括:文件私有缓存器列表维护单元、文件私有缓存器处理单元、文件名称提供单元; 所述文件私有缓存器列表维护单元,用于将所有文件私有缓存器对应的文件路径存储在一个全局列表中,其中列表项包括文件全路径、文件私有缓存器数据信息; 所述文件私有缓存器处理单元,提供文件私有缓存器创建功能、文件私有缓存器与文件对象关联功能、文件私有缓存器支持系统预读功能、文件私有缓存器支持系统延迟写功倉泛; 所述名称提供器单元,用于内核其它模块根据与文件私有缓存器关联的文件对象查询文件名称。
10.如权利要求9所述的文件私有缓存建立的装置,其特征在于,所述文件私有缓存器提供创建功能,当文件第一次打开时根据IRP判定条件创建文件私有缓存器;所述文件私有缓存器提供与文件对象关联功能,首先根据文件对象的全路径从文件私有缓存器列表中查找与文件对象唯一关联的文件私有缓存器,然后更新文件对象的缓存相关信息、文件对象权限相关信息,最后将文件对象添加到文件私有缓存器中文件对象列表。
【文档编号】G06F17/30GK103544287SQ201310517191
【公开日】2014年1月29日 申请日期:2013年10月28日 优先权日:2013年10月28日
【发明者】王文宇, 苑海彬, 吴生东, 刘玉红 申请人:中国软件与技术服务股份有限公司