DearKeen
驱动牛犊
驱动牛犊
  • 注册日期2002-10-10
  • 最后登录2005-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1686回复:3

请问如何在Read或Write例程中删除当前文件?

楼主#
更多 发布于:2004-03-18 20:27
如题,在ReadDispatch中拦截到对test.exe的Read操作的时候对它进行删除操作用ZwDeleteFile,为什么有时成功有时失败?

最新喜欢:

rhpengrhpeng
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-19 21:25
可以把test.exe关掉试试,好像ObOpenObjectByPointer可以得到文件句柄hFile,那么直接用ZwClose就可以了。
文件不能操作应该就是因为当前文件已经处于打开状态了。
DearKeen
驱动牛犊
驱动牛犊
  • 注册日期2002-10-10
  • 最后登录2005-01-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-20 16:35
谢谢关注!
发现ObOpenObjectByPointer只能在CreateDispatch里得到hFile,而且和原有的hFile不一样。在其他地方一调系统就没有响应了。
我试过发IRP直接关闭FileObject,好像还是不行。
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-21 09:58
直接发IRP关FileObject好像对Zw***没有帮助吧,除非是这样:IRPClose(FileObject);IRPDelete(FileObject);
IRPDelete指的是SET_INFORMATION_FILE
游客

返回顶部