rookie_cn
驱动牛犊
驱动牛犊
  • 注册日期2002-11-28
  • 最后登录2004-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1123回复:2

Clean up Irp的困惑

楼主#
更多 发布于:2003-06-15 13:39
在每次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也清除掉了。是这样的吗????
rookie_cn:相信我,我会让你成为世界上第2幸福的人 girl:那谁是第一幸福的人 rookie_cn:拥有了你,还有谁比我幸福
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-16 09:11
FileObject是与DeviceObject相关的内核文件对象指针,他们是多对一的关系。
你的认可是对我最大的鼓励!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-06-16 13:58
嘿,两个乌鸦 :P
游客

返回顶部