satanli1982
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1509回复:3

怎样在filter driver中改变IRP_MJ_WRITE写入硬盘Buffer的大小?

楼主#
更多 发布于:2004-05-24 20:41
我在filter driver中截获了IRP_MJ_WRITE操作的UerBuffer,已经可以更改别的程序写入硬盘的数据的内容了,但是我想在写入硬盘的数据中加入一段多余的数据,也就是使写入硬盘的内容变长,请问该怎么办?
先谢了!!

我直接更改Parameter.Write.Length但是没有效果:
pIrpStack = IoGetCurrentIrpStackLocation(Irp);
pIrpStack->Parameters.Write.Length = pIrpStack->Parameters.Write.Length +unAddBufSize;
xxcat1220
驱动牛犊
驱动牛犊
  • 注册日期2004-01-19
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-25 11:20
你试试直接用ZwCreateFile打开文件,写入数据,关闭后将IRP包继续下传,应该可以
satanli1982
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-25 11:45
请问在ZwCreateFile中怎么设置打开文件的路径,用pIrpStack->FileObject->FileName能行吗?
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-25 15:30
试试下列处理步骤看行不行:
1、为Irp->AssociatedIrp.SystemBuffer分配足够的内存;
2、改变IrpSp->Parameters.Write.Length的长度;
3、改变Irp->IoStatus.Information;
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
游客

返回顶部