阅读:1587回复:2
IopCloseFile究竟何时发出IRP_MJ_CLEANUP
请教一下《NT文件系统内幕》(中文版)卖家一个问题。书中第262页第一段说“只有在一个文件对象的所有的外部用户句柄都已经关闭并且传递进来的SystemHandleCount的值等于1的时候,IopCloseFile()才发出一个到FSD的IRP_MJ_CLEANUP”。可是第261页倒数第三段第三行又说IRP_MJ_CLEANUP请求是用户进程最后关闭文件句柄的时候由I/O管理器发出(即,当这个表示所有用户打开实例的的文件对象的系统打开句柄计数等于0的时候)。第383页正数第四段又说,“现在,如果文件对象的所有句柄都关闭了(文件对象在系统范围的句柄计数等于0),I/O管理器创建一个主功能代码为IRP_MJ_CLEANUP的IRP来调用FSD的入口例程”。究竟是SystemHandleCount=0 还是SystemHandleCount=1的时候发IRP_MJ_CLEANUP呢?
|
|
沙发#
发布于:2008-12-01 16:12
1
1 1 |
|
板凳#
发布于:2008-12-02 21:48
兄弟有何依据呢?
|
|