阅读:1123回复:2
Clean up Irp的困惑
在每次CloseHandle的时候,Io管理器都会发送IRP_MJ_CLEANUP,IRP_MJ_CLOSE,programming wdm里面说我们应该在IRP_MJ_CLEANUP的处理函数里面清除所有发送到该Handle关联的FileObject的Irp.
这样我就有问题了, 1.FileObject和DeviceObject有什么区别呢?为什么要用FileObject而不用DeviceObject 2.我认为CloseHandle主要做的是把Handle从Handle Table里面删除,而handle所代表的Object内存区域块并不一定被 Free(Free仅发生在这个Object所关联的所有handle都被Close的时候)。所以CloseHandle的时候,我们在IRP_MJ_CLEANUP的处理函数里面清除所有发送到该Handle关联的FileObject的Irp就会有问题,因为你把其他关联到了这个fileObject的Irp也清除掉了。是这样的吗???? |
|
|
沙发#
发布于:2003-06-16 09:11
FileObject是与DeviceObject相关的内核文件对象指针,他们是多对一的关系。
|
|
|
板凳#
发布于:2003-06-16 13:58
嘿,两个乌鸦 :P
|
|