Tyring to develp a layered file system which maintains its own cache
management and for Paging IO and Non Cache IO it will talk to low level file
syste.
Everything is working fine.
But when a file is data is read from the file for the first read operation
it is working fine but for second read operatoin on the file object, System
is going into BSOD.
When I tried to debug the crash dump using WinDbg it shows:
BugCheck 8E, {c0000005, 805708ea, f7827c20, 0}
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be
wrong.
f78627e8 804fc973 0000008e c0000005 805708ea nt!KeBugCheckEx+0x1b
f7862bb0 8053d251 f7862bcc 00000000 f7862c20 nt!KeRaiseUserException+0xc29
f7862c38 8060322f e16eefb8 8161d020 f7862c6c nt!Kei386EoiHelper+0x1d9
f7862d38 8053c808 000000d0 00000000 00000000 nt!ExEnumHandleTable+0x5a3
f7862ddc 80540fa2 f96ebb85 8161ded0 00000000
nt!KeReleaseInStackQueuedSpinLockFromDpcLevel+0xb14
f7862ecc bf8141ea 00000000 f7862c68 e115e000 nt!KiDispatchInterrupt+0x5a2
00000000 00000000 00000000 00000000 00000000 win32k!EngDeleteSurface+0x40ba
STACK_COMMAND: kb
FOLLOWUP_IP:
win32k!EngDeleteSurface+40ba
bf8141ea c3 ret
SYMBOL_STACK_INDEX: 6
SYMBOL_NAME: win32k!EngDeleteSurface+40ba
FOLLOWUP_NAME: MachineOwner
IMAGE_NAME: win32k.sys
I am initializing cache on file object in read operation if PrivateCacheMap
of file object is null and I am using locks while checking this variable.
This issue is not reproduced if I disable the cache and read from low level
file system.
Can any one help me in understanding the issue.
Thanks,
VC