Help, my fsd got BSOD in NtReadFile after CcInitializeCacheMap.

My simple filesystem got BSOD in NtReadFile.
If my filesystem doesn’t support Cache ( not call CcXX functions ), no BSOD.
But now I must support it.
I call CcInitializeCacheMap in Read and Write Routine when !NonCache.
And it is work.

But, when I open the file (wordpad.exe) after the file is written ( called the CcInitializeCacheMap in the Write Routine ) , it comes into Read Routine, and CcInitializeCacheMap again (because the wordpad.exe use another FileObjet).

And it works fine until now. Wordpad get the correct data from CcReadFile. But , when the Read Routine return, BSOD!

Please help me. What cause the BSOD. Thanks !!!

The stack:

WARNING: Frame IP not in any known module. Following frames may be wrong.
81e0c4b0 f650ecc8 00000004 0x0
0000008c 00000000 00000000 nt!NtReadFile+0x2d5
0000008c 00000000 00000000 nt!KiFastCallEntry+0xf8
7c801879 0000008c 00000000 ntdll!KiFastSystemCallRet
0000008c 00000000 00000000 ntdll!ZwReadFile+0xc
0000008c 002dc9b8 00000004 0x7c801879
002dc9b8 00000000 002da110 0x5f8135c6
01003578 010249b0 01024830 0x100a06a
7c80a0b7 00000088 00000000 0x100a527
7c80c1c6 00000084 00000003 ntdll!NtSetEvent+0xc
002d0178 000000bc 00090178 ntdll!NtSetInformationThread+0xc
0006ffe0 0101a032 01006c80 ntdll!RtlAllocateHeap+0xeac
00000034 00000114 00000001 nt!CcPfBeginAppLaunch+0x19f

Ok, I solved this problem by myself.
I set FastIoRead to null at DriverEntry. And the NtReadFile call the function ptr, and it BSOD.