anbc
驱动牛犊
驱动牛犊
  • 注册日期2005-11-25
  • 最后登录2011-02-10
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望143点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1676回复:5

通过文件驱动如何修改文件的长度

楼主#
更多 发布于:2010-09-07 14:11
写了一个文件过滤驱动,想修改一下驱动向应用层程序返回的数据,使用户右点击相应文件,点击属性后,返回的文件长度是我修改后的长度。一直没有成功,请教大牛,该如何实现。

    我用的方法:是拦截 IRP_MJ_QUERY_INFORMATION的FileStandardInformation,并修改从下层驱动返回的结构体PFILE_STANDARD_INFORMATION。具体代码是:
case FileStandardInformation:
{
                
    PFILE_STANDARD_INFORMATION stand_infor = (PFILE_STANDARD_INFORMATION)buffer;
    stand_infor->AllocationSize.QuadPart -= CF_FILE_HEADER_SIZE;
    stand_infor->EndOfFile.QuadPart -= CF_FILE_HEADER_SIZE;
    break;
}
  修改已经完成,但是属性里的文件长度信息一直没有变化。
同时也拦截处理了:FileAllInformation、FileAllocationInformation、FileValidDataLengthInformation、FileStandardInformation、FileEndOfFileInformation、FilePositionInformation、FileStreamInformation。也没有起到作用。
xjwchy
驱动牛犊
驱动牛犊
  • 注册日期2009-11-18
  • 最后登录2010-09-17
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-09-07 14:51
帮忙顶
space061
驱动牛犊
驱动牛犊
  • 注册日期2005-08-03
  • 最后登录2013-05-29
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望272点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-09-07 14:52
使用procmon工具看看
anbc
驱动牛犊
驱动牛犊
  • 注册日期2005-11-25
  • 最后登录2011-02-10
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望143点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-09-07 17:03
有哪位了解,能具体说说吗?
liyiqin
驱动牛犊
驱动牛犊
  • 注册日期2010-09-08
  • 最后登录2011-01-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望91点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-09-08 09:27
不错!
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-09-08 10:17
处理DIRCTRL即可
游客

返回顶部