leolhc
驱动牛犊
驱动牛犊
  • 注册日期2008-02-25
  • 最后登录2008-10-12
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望27点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
阅读:2354回复:3

菜鸟请教:在sfilter中sfCreate与SfCleanupClose中的irp->FileObject是否一一对应

楼主#
更多 发布于:2008-09-12 10:24
在下是驱动菜鸟一个, 最近看了一下楚狂人大侠的教程, 其中在获取文件名部分有下面的一段话:

应该用Map 增加效率.Map 是数据结构问题。请诸位读者自己实现了。方法简述如下:
1. SfCreate 中,获得FileObject 的文件路径(用前面的方法),并把FileObject 指针和路径的对应关系,保存在
一个Map 中。
2. 在任何时候都可以在表中查询一个FileObject 对应的路径.不必担心重入和中断级等等问题。
3. 在SfCleanUp 中删去该FileObject 对应的节点。


我想问一下, sfCreate中的FileObject与SfCleanUp中的FileObject是否一一对应? 因为我观察irp包的时候发现有N个sfCreate的才有一个SfCleanUp的包. 如果不对应那FileObject积累的表不是越来越长了吗.
dreamsity
驱动小牛
驱动小牛
  • 注册日期2006-09-01
  • 最后登录2013-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望821点
  • 贡献值1点
  • 好评度68点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2008-09-12 11:42
IRP_MJ_CREATE看到的FileObject,那么IRP_MJ_CLEANUP一定可以看到。
但反过来就不对了。
IoCreateStreamFileObject创建的FileObject有IRP_MJ_CLEANUP但没有IRP_MJ_CREATE
一切都是时间问题!
leolhc
驱动牛犊
驱动牛犊
  • 注册日期2008-02-25
  • 最后登录2008-10-12
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望27点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-13 09:32
哦, 是这样子啊. 多谢dreamsity大侠指点.
rwei85
驱动牛犊
驱动牛犊
  • 注册日期2008-03-06
  • 最后登录2010-08-25
  • 粉丝0
  • 关注0
  • 积分33分
  • 威望34点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-08-03 18:08
哦  是这样的
游客

返回顶部