cococut
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1123回复:4

怎么获取修改后的文件名称?

楼主#
更多 发布于:2005-07-05 16:19
  我在
case IRP_MJ_SET_INFORMATION:
       if( currentIrpStack->Parameters.SetFile.FileInformationClass == FileRenameInformation )
       {//文件名称被修改
      //请问我在这里怎么获取修改后的文件名称?
       }

我想捕捉文件名被修改的操作并记录下来!
谢谢!
cococut
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-05 16:38
还有一个问题:

就是从一个目录1下copy一个文件到另一个目录2下,
我在case IRP_MJ_CREATE:中获取到目录2下的文件,
可是我怎么获取到该文件的原来路径,就是怎么获取目录1?

谢谢!
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-06 13:17
建议看看osr white papers中的Cracking Rename Operations一文

另外copy就是读文件,写文件,而且读文件和写文件之间并没有什么必须的关联,
所以你的第二个问题,基本不可能解决
cococut
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-06 16:05
typedef struct {
BOOLEAN Replace;
HANDLE RootDir;
ULONG FileNameLength;
WCHAR FileName[1];
} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION;

PFILE_RENAME_INFORMATION renameinfo;
获取的新文件名在renameinfo->FileName中,
我输出renameinfo->FileNameLength 为28,
而renameinfo->FileName却为“\";
为什么?是不是WCHAR的缘故,我是在filemon中调用LogRecord加到日志中,
LogRecord加的是char,不是WCHAR,
怎么把WCHAR数组转换为char数组?
谢谢!
cococut
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-09-23
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-07 08:59
wcstombs()可以解决WCHAR数组转换为char数组的问题!
谢谢tooflat
请问,我怎么给分给你?
一定要告诉我哦
游客

返回顶部