阅读:2354回复:3
菜鸟请教:在sfilter中sfCreate与SfCleanupClose中的irp->FileObject是否一一对应
在下是驱动菜鸟一个, 最近看了一下楚狂人大侠的教程, 其中在获取文件名部分有下面的一段话:
应该用Map 增加效率.Map 是数据结构问题。请诸位读者自己实现了。方法简述如下: 1. SfCreate 中,获得FileObject 的文件路径(用前面的方法),并把FileObject 指针和路径的对应关系,保存在 一个Map 中。 2. 在任何时候都可以在表中查询一个FileObject 对应的路径.不必担心重入和中断级等等问题。 3. 在SfCleanUp 中删去该FileObject 对应的节点。 我想问一下, sfCreate中的FileObject与SfCleanUp中的FileObject是否一一对应? 因为我观察irp包的时候发现有N个sfCreate的才有一个SfCleanUp的包. 如果不对应那FileObject积累的表不是越来越长了吗. |
|
沙发#
发布于:2008-09-12 11:42
IRP_MJ_CREATE看到的FileObject,那么IRP_MJ_CLEANUP一定可以看到。
但反过来就不对了。 IoCreateStreamFileObject创建的FileObject有IRP_MJ_CLEANUP但没有IRP_MJ_CREATE |
|
|
板凳#
发布于:2008-09-13 09:32
哦, 是这样子啊. 多谢dreamsity大侠指点.
|
|
地板#
发布于:2010-08-03 18:08
哦 是这样的
|
|