wuyieyu
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3124回复:12

请问硬盘保护卡的驱动是怎么一会事?

楼主#
更多 发布于:2002-03-21 09:47
常碰到,可不知原理?
帮帮我!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-21 11:04
硬盘保护卡的驱动程序实质是IFS或Filter FSD。装上这种卡以后,对于系统的I/O申请,经由保护卡驱动程序产生转向,达到对文件系统的保护。具体说来:写的时候不是写到文件本来存在的地方,而是写到了另外一个地方(这样才有可能以后恢复),读的时候又是由另外一个地方读进来(让用户觉得他成功的实现了保存文件,殊不知被别人作了手脚:))。同时一般原理都是做一个R/W映射表,真实地记录用户对每一个文件的操作以及操作的结果,以便还原的时候知道从哪里恢复数据。另外对于这种驱动程序,Win9x的只能用VXD做,而2000的和NT的必须用WDM去实现。

Best Regards!
Tom_lyd
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-21 12:47
其实硬盘保护卡是基于硬盘的,很少基于文件系统!如果基于文件系统,那么要处理的就多比基于硬盘的多很多!
这些保护卡在DOS下是替换了INT的入口
在WINDOWS下是拦截了对硬盘的读写入口
象NT或2000就是做了一层过滤层拦截在分区或硬盘上面拦截在PARTTITION0或PARTTITION1上面!
wuyieyu
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-21 16:17
同时一般原理都是做一个R/W映射表,真实地记录用户对每一个文件的操作以及操作的结果,以便还原的时候知道从哪里恢复数据。另外对于这种驱动程序,Win9x的只能用VXD做,而2000的和NT的必须用WDM去实现。

你说的做一个R/W表,是什么意思呀?是不是说是地址映射什么的?
那如果我要把运行在9X上的卡子用在2000上,要怎么做呀?是不是不能启动?
wuyieyu
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-21 16:47
其实硬盘保护卡是基于硬盘的,很少基于文件系统!如果基于文件系统,那么要处理的就多比基于硬盘的多很多!
这些保护卡在DOS下是替换了INT的入口
在WINDOWS下是拦截了对硬盘的读写入口
象NT或2000就是做了一层过滤层拦截在分区或硬盘上面拦截在PARTTITION0或PARTTITION1上面!

你说:
象NT或2000就是做了一层过滤层拦截在分区或硬盘上面拦截在PARTTITION0或PARTTITION1上面,是什么意思呀,我不明白?
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-21 16:51
刚刚guardee老兄说的对,硬盘保护卡确实应该直接从硬盘I/O上进行拦截,从文件层进行拦截不能有效的实现保护,而且速度可能会慢得惊人。
我所说的R/W映射表是一张读/写映射表,它记录了用户对硬盘(扇区)的读写历史(当然这得视你的算法而定)。
程序在初始化的时候根据当前的硬盘存储状态建立一张资源状况表,当用户欲改写某存储单元(比如说扇区)时,就把它对应的表中的位Mark起来,同时将欲写的东西写到另外一个地方去(这得视你的算法和目的而定),记录这两个地址(其实不用记录,因为R/W表和磁盘存储单元可以一一对应起来)。恢复的时候就只要直接操作这张表就可以了。
Tom_lyd
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-21 17:25
强调
在NT和2000下已经没有INT13了
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-03-21 21:52
我的理解:
那个卡的作用就是负责还原和在DOS下替掉INT13的入口
在32位的系统下用一个驱动程序专门负责备份数据
有空的时候做一个驱动程序,把C设为只读的!
不过,不知道有没有人需要
源代码公开!其实也没什么的!
wuyieyu
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-03-22 09:00
在win2000/nt中不是没有了int13,而是扩展了int13.
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-03-22 12:48
wuyieyu
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2004-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-03-23 11:33
不好意思,这东西一定要有VXD的是不是呀?在2000/nt中是WDM了,所以原有的卡子就不能用了?
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-03-23 20:31
也不是,只要在NT/2000下做的驱动程序能够实现把数据备分的格式和它在9X下备分的格式一样就可以!
yaomingmail
驱动牛犊
驱动牛犊
  • 注册日期2003-03-30
  • 最后登录2007-02-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-05-26 22:42
guardee你好,听你说硬盘保护卡是采用基于硬盘的驱动完成过虑的。in win2k不知道修改IDT做一个HOOK写一段读写硬盘的Ring0代码能不能绕过保护卡?!
I want to like a bird flying in the sky
游客

返回顶部