坏磁盘的访问管理方法及系统技术方案

技术编号:24755740 阅读:34 留言:0更新日期:2020-07-04 09:04
本发明专利技术涉及数据存储技术领域,具体涉及一种坏磁盘的访问管理方法及系统。本申请提供的坏磁盘的访问管理方法,通过初始化应用程序与磁盘过滤驱动,当有新磁盘接入时磁盘过滤驱动将新磁盘的磁盘号写入pDiskNo,设置hNotifyEvent事件,应用程序接收到hNotifyEven事件后提示用户选择磁盘处理方式并根据用户的选择设置pDiskNo和hAppRespond事件,磁盘过滤驱动根据pDiskNo和hAppRespond事件拦截或者不拦截新磁盘读写的方法,使系统在接入可能有坏扇区的新磁盘后,恢复软件有机会访问到新磁盘数据做恢复操作,避免引发windows底层驱动卡死或其它系统异常情况。

Access management method and system of bad disk

【技术实现步骤摘要】
坏磁盘的访问管理方法及系统
本专利技术涉及数据存储
,具体涉及一种坏磁盘的访问管理方法及系统。
技术介绍
Windows启动时存储驱动初始化顺序为:1、总线枚举到磁盘,创建磁盘设备,调用DiskDriver;2、PartMgrDriver根据磁盘分区表生成分区设备;3、VolmgrDriver根据分区依赖关系生成卷设备,并为每个卷生成对应的文件系统对象;4、应用程序可以通过CreateFile、ReadFile、WriteFile访问磁盘上的文件。在生成文件系统对象时,文件系统会读取卷的数据确定是否是支持的数据格式,并初始化必要的文件系统参数对象,如果卷的数据不合法,会出现文件系统无法正常识别和初始化,严重的可能引起文件系统识别和初始化过程的异常,处理进入死循环或内存破坏引起整个操作系统卡顿或崩溃(windows蓝屏),整个系统无法正常使用,软件也无法正常使用,而数据恢复软件在系统无法正常使用时也无法正常工作。卷的数据异常大部分是由于磁盘上有物理的坏扇区,读出的数据不正确。只要阻止文件系统读取卷数据,文件系统不识别数据,就本文档来自技高网...

【技术保护点】
1.一种坏磁盘的访问管理方法,其特征在于,应用于应用程序和磁盘过滤驱动,所述方法包括:/nS11:应用程序创建两个全局事件对象hNotifyEvent和hAppRespond,分配存放磁盘号的内存位置pDiskNo,将hNotifyEvent、hAppRespond和pDiskNo传给磁盘过滤驱动,等待hNotifyEvent事件;/nS12:磁盘过滤驱动接收应用程序传入的hNotifyEvent、hAppRespond和pDiskNo;/nS13:当磁盘过滤驱动的例程函数AddDevice被调用,磁盘过滤驱动将新磁盘的磁盘号写入pDiskNo,设置hNotifyEvent事件通知应用程序有新...

【技术特征摘要】
1.一种坏磁盘的访问管理方法,其特征在于,应用于应用程序和磁盘过滤驱动,所述方法包括:
S11:应用程序创建两个全局事件对象hNotifyEvent和hAppRespond,分配存放磁盘号的内存位置pDiskNo,将hNotifyEvent、hAppRespond和pDiskNo传给磁盘过滤驱动,等待hNotifyEvent事件;
S12:磁盘过滤驱动接收应用程序传入的hNotifyEvent、hAppRespond和pDiskNo;
S13:当磁盘过滤驱动的例程函数AddDevice被调用,磁盘过滤驱动将新磁盘的磁盘号写入pDiskNo,设置hNotifyEvent事件通知应用程序有新磁盘接入,等待hAppRespond事件;
S14:应用程序接收到hNotifyEven事件后,提示用户选择磁盘处理方式并根据用户选择的磁盘处理方式设置pDiskNo和hAppRespond事件通知磁盘过滤驱动;
S15:磁盘过滤驱动收到hAppRespond事件,根据pDiskNo和新磁盘的磁盘号决定拦截或者不拦截新磁盘读写。


2.根据权利要求1所述的坏磁盘的访问管理方法,其特征在于,所述S11的方法包括:
S111:应用程序通过CreateEvent函数创建两个全局事件对象hNotifyEvent和hAppRespond,分配存放磁盘号的内存位置pDiskNo;
S112:应用程序通过DeviceIOControl函数将hNotifyEvent、hAppRespond和pDiskNo传给磁盘过滤驱动;
S113:应用程序调用WaitForSingleObject函数等待磁盘过滤驱动的hNotifyEvent事件通知。


3.根据权利要求1所述的坏磁盘的访问管理方法,其特征在于,所述S13的方法包括:
S131:当磁盘过滤驱动的例程函数AddDevice被调用时,磁盘过滤驱动将新磁盘的磁盘号写入pDiskNo;
S132:磁盘过滤驱动通过KeSetEvent函数设置hNotifyEvent事件;
S133:磁盘过滤驱动调用KeWaitForSingleObject函数等待应用程序的hAppRespond事件通知。


4.根据权利要求1所述的坏磁盘的访问管理方法,其特征在于,还包括S10:安装磁盘过滤驱动和应用程序;所述S10中安装磁盘过滤驱动的方法包括:
S101:将磁盘过滤驱动安装文件拷贝到c:\windows\system32\drivers下;
S102:用CreateService函数为磁盘过滤驱动安装文件添加磁盘过滤驱动服务,调用StartService函数启动磁盘过滤驱动安装文件,系统执行磁盘过滤驱动安装文件中的DriverEntry。


5.根据权利要求4所述的坏磁盘的访问管理方法,其特征在于,所述S102中系统执行磁盘过滤驱动安装文件中的DriverEntry的过程包括:
初始化磁盘过滤驱动的MajorFunction;
获取partmgr.sys的DRIVER_OBJECT指针,保存partmgr.sys的MajorFunction;
将partmgr.sys的MajorFunction替换为磁盘过滤驱动的MajorFunction;
磁盘过滤驱动的MajorFunction根据应用程序的请求做相应处理,或将请求转到保存partmgr.sys的MajorFunction对应函数。


6.一种坏磁盘的访问管理系...

【专利技术属性】
技术研发人员:韦家鹏
申请(专利权)人:成都易我科技开发有限责任公司
类型:发明
国别省市:四川;51

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

1