一种处理I/O请求的方法及电子设备技术

技术编号:9198016 阅读:150 留言:0更新日期:2013-09-26 02:15
本发明专利技术公开了一种处理I/O请求的方法,用于保护磁盘。所述方法包括:获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息;在第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为第一操作;当表明所述I/O请求对应的操作为所述第一操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息;当表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。本发明专利技术还公开了用于实现所述方法的电子设备。

【技术实现步骤摘要】
一种处理I/O请求的方法及电子设备
本专利技术涉及通信领域,特别涉及一种处理I/O请求的方法及电子设备。
技术介绍
基于I/O(输入输出)重定向的存储设备保护软件可能被穿透,比如应用层/驱动层可以通过直接发送SCSI(SmallComputerSystemInterface,小型计算机系统接口)指令绕过存储设备保护软件,或者驱动层还可以通过获取DISK(磁盘)的驱动对象,直接调用驱动对象的Dispatch(调度)函数等,也可以绕过存储设备保护软件。这些方法都可能导致基于IO重定向的存储设备保护软件失效,可能会对磁盘造成损坏。
技术实现思路
本专利技术实施例提供一种处理I/O请求的方法及电子设备,用于保护磁盘。一种处理输入输出I/O请求的方法,应用在一电子设备中,所述方法包括:获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息;在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为第一操作,获得第一判断结果;当所述第一判断结果表明所述I/O请求对应的操作为所述第一操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。较佳的,所述第一操作为写操作。较佳的,所述第一驱动为过滤驱动,所述第二驱动为类驱动或端口驱动。较佳的,对所述I/O请求包信息进行第一处理的步骤包括:将所述I/O请求包信息记录到一列表中,或将所述I/O请求包中的第一元素的值设置为第一特定值。较佳的,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果的步骤包括:判断所述I/O请求包信息是否存在于所述列表中,获得第二判断结果;或判断所述I/O请求包中的所述第一元素的值是否为所述第一特定值,获得第二判断结果。较佳的,当判断确定所述I/O请求包信息是否存在于所述列表中时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息;或当判断确定所述I/O请求包中的所述第一元素的值为所述第一特定值时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息。较佳的,还包括步骤:当所述第二判断结果表明所述I/O请求包信息不是经过所述第一处理后的I/O请求包信息时,丢弃所述I/O请求包信息,或拒绝执行所述I/O请求所对应的操作。一种电子设备,包括:获取模块,用于获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息;第一驱动,用于在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为第一操作,获得第一判断结果;处理模块,用于当所述第一判断结果表明所述I/O请求对应的操作为所述第一操作时,对所述I/O请求包信息进行第一处理;第二驱动,用于在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;操作模块,用于当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。较佳的,所述第一操作为写操作。较佳的,所述第一驱动为过滤驱动,所述第二驱动为类驱动或端口驱动。较佳的,所述处理模块具体用于将所述I/O请求包信息记录到一列表中,或将所述I/O请求包中的第一元素的值设置为第一特定值。较佳的,所述第二驱动具体用于:判断所述I/O请求包信息是否存在于所述列表中,获得第二判断结果;或判断所述I/O请求包中的所述第一元素的值是否为所述第一特定值,获得第二判断结果。较佳的,当所述第二驱动判断确定所述I/O请求包信息是否存在于所述列表中时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息;或当所述第二驱动判断确定所述I/O请求包中的所述第一元素的值为所述第一特定值时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息。较佳的,所述操作模块还用于当所述第二判断结果表明所述I/O请求包信息不是经过所述第一处理后的I/O请求包信息时,丢弃所述I/O请求包信息,或拒绝执行所述I/O请求所对应的操作。本专利技术实施例中处理I/O请求的方法为获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包(IRP)信息;在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为写操作,获得第一判断结果;当所述第一判断结果表明所述I/O请求对应的操作为写操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。通过在第二驱动处判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,再根据判断结果进行相应操作,如果所述I/O请求包信息不是经过所述第一处理后的I/O请求包信息,则可以确定所述I/O请求包信息没有经过存储设备保护软件,则可以丢弃该I/O请求包信息或拒绝执行该I/O请求所对应的操作,从而有效保护磁盘。附图说明图1为本专利技术实施例中处理I/O请求的主要方法流程图;图2为本专利技术实施例中电子设备的主要结构图。具体实施方式本专利技术实施例中处理I/O请求的方法为获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包(IRP)信息;在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为写操作,获得第一判断结果;当所述第一判断结果表明所述I/O请求对应的操作为写操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。通过在第二驱动处判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,再根据判断结果进行相应操作,如果所述I/O请求包信息不是经过所述第一处理后的I/O请求包信息,则可以确定所述I/O请求包信息没有经过存储设备保护软件,则可以丢弃该I/O请求包信息或拒绝执行该I/O请求所对应的操作,从而有效保护磁盘。参见图1,本专利技术实施例中处理I/O请求的主要方法流程如下,所述方法可以应用于一电子设备中:步骤101:获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,将相应的I/O请求转换成相应的IRP(I/ORequestPacket,输入本文档来自技高网...
一种处理I/O请求的方法及电子设备

【技术保护点】
一种处理输入输出I/O请求的方法,应用在一电子设备中,其特征在于,所述方法包括:获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息;在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为第一操作,获得第一判断结果;当所述第一判断结果表明所述I/O请求对应的操作为所述第一操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。

【技术特征摘要】
1.一种处理输入输出I/O请求的方法,应用在一电子设备中,其特征在于,所述方法包括:获得一应用程序生成的I/O请求,并基于所述I/O请求获得一I/O请求包信息;在所述电子设备中的第一驱动获得所述I/O请求包信息时,判断所述I/O请求对应的操作是否为第一操作,获得第一判断结果;当所述第一判断结果表明所述I/O请求对应的操作为所述第一操作时,对所述I/O请求包信息进行第一处理;在所述电子设备中的第二驱动获得所述I/O请求包信息时,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果;当所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息时,通过所述第二驱动执行所述I/O请求对应的操作。2.如权利要求1所述的方法,其特征在于,所述第一操作为写操作。3.如权利要求1所述的方法,其特征在于,所述第一驱动为过滤驱动,所述第二驱动为类驱动或端口驱动。4.如权利要求1所述的方法,其特征在于,对所述I/O请求包信息进行第一处理的步骤包括:将所述I/O请求包信息记录到一列表中,或将所述I/O请求包中的第一元素的值设置为第一特定值。5.如权利要求4所述的方法,其特征在于,判断所述I/O请求包信息是否是经过所述第一处理后的I/O请求包信息,获得第二判断结果的步骤包括:判断所述I/O请求包信息是否存在于所述列表中,获得第二判断结果;或判断所述I/O请求包中的所述第一元素的值是否为所述第一特定值,获得第二判断结果。6.如权利要求5所述的方法,其特征在于,当判断确定所述I/O请求包信息是否存在于所述列表中时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息;或当判断确定所述I/O请求包中的所述第一元素的值为所述第一特定值时,所述第二判断结果表明所述I/O请求包信息是经过所述第一处理后的I/O请求包信息。7.如权利要求1所述的方法,其特征在于,还包括步骤:当所述第二判断结果表明所述I/O请求包信息不是经过所述第一处理后的I/O请求包信息时,丢弃所述I/O请求包信息,或拒绝执行所述I/O请求所对应的...

【专利技术属性】
技术研发人员:易鸿斌
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1