rsandtl
驱动牛犊
驱动牛犊
  • 注册日期2009-12-07
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1409回复:4

关于文件过滤驱动中交换缓存的问题

楼主#
更多 发布于:2009-12-12 09:34
我遇到一个微过滤方面的问题,请各位多多指教:
 
       我的目的:做一个透明的加解密过滤驱动;
       目前问题:交换缓存好像无效;
       测试方式:我先创建了一个txt文件,内容是“abcd”,我希望通过我的过滤器,让记事本打开后显示成“1234”,虽然我按照微软示例中提供的方式进行了缓存交换和内存COPY操作(调试时查看内存内容确实也变了),但发现记事本打开后还是显示“abcd”。
 
下面这几句代码就是测试时用的,强行把打开的文本文件内容换成数字,但是好像并没有成功。
char* tmp = "1234567890123456789";
RtlCopyMemory( p2pCtx->SwappedBuffer,tmp,
                           Data->IoStatus.Information );
RtlCopyMemory( origBuf,
                           p2pCtx->SwappedBuffer,
                           Data->IoStatus.Information );

到底问题出在哪呢?

rsandtl
驱动牛犊
驱动牛犊
  • 注册日期2009-12-07
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-12-12 10:49
发现原来是TXT文件的问题, 改成扩展名为DOC后, 过滤成功.....  

TXT文件应该是被操作系统预加载了,  应该怎么来交换它的缓存呢, 值得研究一下....
JeTus
驱动牛犊
驱动牛犊
  • 注册日期2007-09-22
  • 最后登录2010-01-17
  • 粉丝3
  • 关注0
  • 积分84分
  • 威望781点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-12-12 13:30
貌似txt都要刷……
dasanlang
驱动牛犊
驱动牛犊
  • 注册日期2009-10-27
  • 最后登录2010-03-01
  • 粉丝1
  • 关注1
  • 积分15分
  • 威望141点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-12-15 10:49
应该是缓存的问题
wakinanna
驱动牛犊
驱动牛犊
  • 注册日期2009-12-17
  • 最后登录2009-12-20
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望91点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-12-17 16:41
好东西啊,呵呵
游客

返回顶部