AthlonxpX861
驱动牛犊
驱动牛犊
  • 注册日期2003-07-26
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1987回复:11

修改filemon怎样能实现文件路径重定位

楼主#
更多 发布于:2004-08-02 15:12
那位大侠提示一下,我想在IRP_MJ_CREATE下修改文件路径,但不知道该修改哪里,fileobject?
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-07 16:54
UP
AthlonxpX86(桃源村)
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-08 18:15
Up
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-10 10:19
UPUPUPUPUPUPUPUPUPUPUPUPUPPUPPU
AthlonxpX86(桃源村)
he_x_p
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2005-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-14 00:03
应该是IrpSp里面吧?!
乘着梦的翅膀, 借助黎明时柔和的阳光, 化着一只自由自在的冲天鸟, 在有梦的地方潇洒地飞翔......
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-20 04:14
????
UPUPUPUPUP
AthlonxpX86(桃源村)
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-20 04:14
UPUPUPUPUPUPUPUPPUPUP
AthlonxpX86(桃源村)
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-20 04:15
UPUPUPUPUPUPUPUPUPUPUP
AthlonxpX86(桃源村)
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-08-20 04:15
UPUPUPUPUPUPUPUPUP
AthlonxpX86(桃源村)
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-20 09:15
如果是在同一个盘符下,可以直接修改IrpSp->FileObject->FileName.Buffer,然后象普通的Irp一样处理。

如果是在不同盘符下,除了第一步外,还需要返回STATUS_REPARSE,让文件系统重新处理,如下:
WCHAR *newfile = NULL;

if (IrpSp->FileObject->FileName.Buffer != NULL)
{
       ExFreePool(IrpSp->FileObject->FileName.Buffer);
}
newfile = ExAllocatePoolWithTag(PagedPool, 13 * sizeof(WCHAR), 'XXXX');
wcscpy(newfile, L"??f:1.txt");
   RtlInitUnicodeString(&IrpSp->FileObject->FileName, newfile);
     IrpSp->FileObject->RelatedFileObject = NULL;
   Irp->IoStatus.Information = IO_REPARSE;
     Irp->IoStatus.Status = STATUS_REPARSE;
  IoCompleteRequest(Irp, IO_NO_INCREMENT);
  return STATUS_REPARSE

tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-08-20 09:16
上面的文件路径有问题,反斜杠被过滤掉了
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-08-20 13:57
谢谢tooflat的帮助,感谢万分,给分
AthlonxpX86(桃源村)
游客

返回顶部