In last Close's completion,FileObject->SectionObjectPointer isn't a Garbage Pointer.

In my observation,when FSD call CcUnitiailizeCacheMap,Cc delete
Cache(so,DataSection,
ShareCacheMap,ImageSection will destroyed and NULL);Cache Manager delete
SectionObject
after last close completion.
I validate this viewpoint in Win2000 sp4;

but,I find this description below:

“Lyndon J. Clarke” wrote:

I have the strangest situation. I’m in the completion routine handling an
IRP_MJ_CLOSE. You can guess I’m looking at the SectionObjectPointers of
the file object. So FileObject->SectionObjectPointer is not NULL, but
seems to be a garbage pointer. If I say try to evaluate
FileObject->SectionObjectPointer->DataSectionObject then its
PAGE_FAULT_IN_ etc, if I look at this in windbg it says its a memory
access error. Has anyone seen this? (Interestingly, windbg doesnt show all
the local variables for this function. I guess that’s a question for the
windbg list.)

anyone can explain it?thank you.

Sorry, this confusion was caused by yours truly, as this post was due to
my utter misunderstanding of the reference counting article. The thread
goes on to show me my error. I was doing the work in irp_mj_close
completion instead of dispatch; it *has* to be done in dispatch. I moved
the work to dispatch and its been great ever since.