neak47
驱动小牛
驱动小牛
  • 注册日期2009-05-25
  • 最后登录2016-01-09
  • 粉丝4
  • 关注0
  • 积分140分
  • 威望1221点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:1803回复:5

加密标识文件头的问题

楼主#
更多 发布于:2009-10-13 16:45
1. Pre-Create中。对于受控文件,读取文件前4KB,如果和标识匹配,则标记该文件为加密文件,如果不匹配,则标记为待加密文件;
2. Pre-Read中。对于受控文件,若为加密文件,则移动偏移,否则不移动偏移;
3. Post-Read中。对于受控文件,若为加密文件,则解密,否则不解密;
4. Pre-Write中。对于受控文件,若为加密文件,则移动偏移,并加密,否则若为待加密文件,则在第一次非缓冲写时将头部标识先写入文件,并标记文件为加密文件,然后再进行后续的数据写操作(后续的读写操作都需要加密了);
5. Post-QueryInfo中。若受控文件为加密文件,则向上层隐藏文件长度,否则不隐藏;
6. Pre-SetInfo中。若受控文件为加密文件,则设置真正的文件长度(即加上文件头部长度),否则仅设置文件实际长度;
7. Pre-Close中。若受控文件引动计数为0,则清除缓存。
存在问题:
在第一次非缓冲写(通常都是paging io)时对文件进行打标,会对文件长度进行扩展,在NTFS下会导致死锁,但在FAT32下正常。而且我试图释放FsContext中的两个锁,但是仍然不能解决问题。
neak47
驱动小牛
驱动小牛
  • 注册日期2009-05-25
  • 最后登录2016-01-09
  • 粉丝4
  • 关注0
  • 积分140分
  • 威望1221点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2009-10-13 20:42
回 1楼(qianjunhua) 的帖子
在Pre-Write操作中写文件头标识,设置文件长度死锁如何解决啊?
游客

返回顶部