Hi All,
I have a layer file system filter driver, it works fine in windows 2012 R2 or before versions. But when I tested in windows 10, I will get this BSOD from time to time.
I enabled the driver verifier for my driver, but it didn’t catch anything.
!analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6)
N bytes of memory was allocated and more than N bytes are being referenced.
This cannot be protected by try-except.
When possible, the guilty driver’s name (Unicode string) is printed on
the bugcheck screen and saved in KiBugCheckDriver.
Arguments:
Arg1: ffffcf80c05ab050, memory referenced
Arg2: 0000000000000000, value 0 = read operation, 1 = write operation
Arg3: fffff80103ec1171, if non-zero, the address which referenced memory.
Arg4: 0000000000000000, (reserved)
Debugging Details:
BUGCHECK_P1: ffffcf80c05ab050
BUGCHECK_P2: 0
BUGCHECK_P3: fffff80103ec1171
BUGCHECK_P4: 0
READ_ADDRESS: ffffcf80c05ab050 Special pool
FAULTING_IP:
NTFS!NtfsFindStartingNode+651
fffff801`03ec1171 498b80b0000000 mov rax,qword ptr [r8+0B0h]
MM_INTERNAL_CODE: 0
IMAGE_NAME: NTFS.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 55b99edf
MODULE_NAME: NTFS
FAULTING_MODULE: fffff80103e00000 NTFS
CPU_COUNT: 1
CPU_MHZ: 703
CPU_VENDOR: GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 2d
CPU_STEPPING: 7
DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT
BUGCHECK_STR: 0xD6
PROCESS_NAME: svchost.exe
CURRENT_IRQL: 2
ANALYSIS_VERSION: 10.0.10240.9 amd64fre
TRAP_FRAME: ffffd001f641daf0 – (.trap 0xffffd001f641daf0)
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffffc000403c7630 rbx=0000000000000000 rcx=0000000000000001
rdx=0000000000000020 rsi=0000000000000000 rdi=0000000000000000
rip=fffff80103ec1171 rsp=ffffd001f641dc80 rbp=ffffe001a19ca2f0
r8=ffffcf80c05aafa0 r9=ffffd001f641deb0 r10=0000000000000001
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei ng nz na po nc
NTFS!NtfsFindStartingNode+0x651:
fffff80103ec1171 498b80b0000000 mov rax,qword ptr [r8+0B0h] ds:ffffcf80
c05ab050=???
Resetting default scope
LAST_CONTROL_TRANSFER: from fffff8002ae78136 to fffff8002add7920
STACK_TEXT:
ffffd001f641d0f8 fffff800
2ae78136 : 0000000000000050 00000000
00000003 ffffd001f641d260 fffff800
2ad0ccc8 : nt!DbgBreakPointWithStatus
ffffd001f641d100 fffff800
2ae77a66 : 0000000000000003 ffffd001
f641d260 fffff8002added60 ffffd001
f641d7b0 : nt!KiBugCheckDebugBreak+0x12
ffffd001f641d160 fffff800
2add2344 : 0000000000000000 00000000
00000000 78002afc60000000 00000000
00000001 : nt!KeBugCheck2+0x93e
ffffd001f641d870 fffff800
2ae21f58 : 0000000000000050 ffffcf80
c05ab050 0000000000000000 ffffd001
f641daf0 : nt!KeBugCheckEx+0x104
ffffd001f641d8b0 fffff800
2aca3536 : 0000000000000000 00000000
00000000 ffffd001f641daf0 ffffc000
403c5558 : nt! ?? ::FNODOBFM::string'+0x41158 ffffd001
f641d9a0 fffff8002addb2bd : ffffe001
a1cb9080 fffff80103ee7c27 ffffc000
403c51d0 ffffc000403c5558 : nt!MmAccessFault+0x696 ffffd001
f641daf0 fffff80103ec1171 : ffffe001
a08b3520 fffff8002b3c7da3 00000000
00000030 ffffe001a08b3520 : nt!KiPageFault+0x13d ffffd001
f641dc80 fffff80103ec1d8a : ffffe001
a06df8c8 ffffcf80bff60b40 00000000
00000000 ffffd001f641deb0 : NTFS!NtfsFindStartingNode+0x651 ffffd001
f641dd40 fffff80103ec182d : ffffe001
a06df8c8 ffffcf80bff60b40 ffffd001
fafe4050 ffffe001a1cb9001 : NTFS!NtfsCommonCreate+0x52a ffffd001
f641df50 fffff8002add4da7 : ffffd001
fafe4000 0000000000000000 00000000
00000000 0000000000000000 : NTFS!NtfsCommonCreateCallout+0x1d ffffd001
f641df80 fffff8002add4d6d : 00000000
00006000 0000000000000012 ffffd001
f641e000 fffff8002ad00564 : nt!KxSwitchKernelStackCallout+0x27 ffffd001
fafe3e40 fffff8002ad00564 : 00000000
00000006 0000000000006000 ffffe001
a1fc5000 0000000000000006 : nt!KiSwitchKernelStackContinue ffffd001
fafe3e60 fffff8002ad002d6 : 00000000
00000009 0000000000006000 00000000
00000000 ffffd001fafe3ee0 : nt!KiExpandKernelStackAndCalloutOnStackSegment+0x134 ffffd001
fafe3ee0 fffff8002ad0019f : ffffe001
a0bf1030 ffffd001fafe4000 00000000
00000001 ffffcf80bff60b40 : nt!KiExpandKernelStackAndCalloutSwitchStack+0xa6 ffffd001
fafe3f40 fffff80103ec4f9d : 00000000
00000000 0000000000000000 ffffe001
a06df8c8 ffffcf80bff60b40 : nt!KeExpandKernelStackAndCalloutInternal+0x2f ffffd001
fafe3f90 fffff8002b3b2044 : ffffe001
a0bf1030 ffffcf80bff60b40 ffffd001
fafe4100 fffff8002b3c8a96 : NTFS!NtfsFsdCreate+0x1dd ffffd001
fafe41b0 fffff8002ad166c2 : ffffe001
a0904a90 0000000000000000 ffffcf80
bff60b40 ffffe001a25d2010 : nt!IovCallDriver+0x3d8 ffffd001
fafe4210 fffff801033351c4 : ffffd001
fafe4319 ffffcf80bff60b40 ffffe001
a1bcbe20 ffffe001a1bcbe78 : nt!IofCallDriver+0x72 ffffd001
fafe4250 fffff8010336383a : ffffe001
a0bdd6c0 ffffe001a01627f0 00000000
00000001 fffff80000000000 : FLTMGR!FltpLegacyProcessingAfterPreCallbacksCompleted+0x2a4 ffffd001
fafe42d0 fffff8002b3b2044 : ffffcf80
bff60b00 ffffcf80bff60b40 6d4e6f49
00000005 0000000000000000 : FLTMGR!FltpCreate+0x34a ffffd001
fafe4380 fffff8002ad166c2 : 00000000
00000004 ffffd001fafe4701 00000000
00000000 ffffe001a073db70 : nt!IovCallDriver+0x3d8 ffffd001
fafe43e0 fffff8002b0b0866 : 00000000
00000004 ffffd001fafe4701 00000000
00000000 ffffe00100000000 : nt!IofCallDriver+0x72 ffffd001
fafe4420 fffff8002b19752a : 00000000
000001bc ffffe001a01627f0 00000000
00000200 ffffe001a19ca2f0 : nt!IopParseDevice+0x9a6 ffffd001
fafe4630 fffff8002b0ab9d1 : 00000000
000001bc ffffd001fafe4790 ffffe001
a19ca2c0 fffff8002b197474 : nt!IopParseFile+0xb6 ffffd001
fafe4690 fffff8002b10a38c : ffffe001
a185c901 ffffd001fafe48b8 00ffffe0
00000040 ffffe0019ed4f080 : nt!ObpLookupObjectName+0x711 ffffd001
fafe4830 fffff8002b10669c : ffffe001
00000001 ffffe001a01627f0 000000e7
68b1e018 000000e768b1e008 : nt!ObOpenObjectByName+0x1ec ffffd001
fafe4960 fffff8002b10625c : 000000e7
68b1e070 000000e768b1df78 000000e7
68b1e018 000000e768b1e008 : nt!IopCreateFile+0x38c ffffd001
fafe4a00 fffff8002addc863 : ffffc000
46592b40 fffff8002b0a505d 00000000
00023dd3 0000000000000000 : nt!NtOpenFile+0x58 ffffd001
fafe4a90 00007ffdb4c6382a : 00007ffd
95f6f93a 000000e768b1e128 00000000
000001bc 000000e767ad47d0 : nt!KiSystemServiceCopyEnd+0x13 000000e7
68b1df88 00007ffd95f6f93a : 000000e7
68b1e128 00000000000001bc 000000e7
67ad47d0 0000000000000001 : ntdll!NtOpenFile+0xa 000000e7
68b1df90 00007ffd95f7022c : ffffffff
ffffffff 00000000000001bc 00000000
00000000 ffffffffffffffff : defragsvc!FsOpenAlternateStream+0x12e 000000e7
68b1e070 00007ffd95f703a0 : 00000000
00000000 00000000000001bc 000000e7
67d07300 ffffffffffffffff : defragsvc!CNtfsVolume::_GetHandleToFile+0x1ec 000000e7
68b1e110 00007ffd95f7996e : 00007ffd
95f702f0 000000e7f0000f74 000000e7
68f0ee60 000000e768b1e310 : defragsvc!CNtfsVolume::_GetHandleToFile+0xb0 000000e7
68b1e190 00007ffd95f7ee77 : ffffffff
ffffffff 000000e767d06d20 000000e7
67d07300 0000000000000000 : defragsvc!CVolume::MovePieceOfFile+0x9e 000000e7
68b1e230 00007ffd95f525b2 : 000000e7
67d06d20 000000e767d04ff0 000000e7
67d06d20 0000000000000000 : defragsvc!CFileOperation::MoveFileExtents+0x547 000000e7
68b1e380 00007ffd95f52c86 : 000000e7
67d050e0 0000000000000001 000000e7
f0000f74 000000e767d04ff0 : defragsvc!CDefragOperation::_Defragment+0x862 000000e7
68b1e540 00007ffd95f516ee : 000000e7
67d06d20 000000e768b1e7b0 000000e7
00000000 000000e768b1e730 : defragsvc!CRunBootOptimize::_DefragmentBootOpt+0x546 000000e7
68b1e6a0 00007ffd95f4e4fe : 00007ffd
95f3fa00 00007ffd95f50db0 000000e7
67d06d20 000000e767d06330 : defragsvc!CRunBootOptimize::RunOperation+0x93e 000000e7
68b1ed00 00007ffd95f3c9a4 : 00000000
00000000 0000000000000000 00007ffd
95f4e2d0 000000e767d061f0 : defragsvc!CDefragOperation::Run+0x22e 000000e7
68b1ed90 0000000000000000 : 00000000
00000000 0000000000000000 00000000
00000000 00000000`00000000 : defragsvc!CDefragAsyncWorker::InvokeRunnable+0x124
STACK_COMMAND: kb
FOLLOWUP_IP:
NTFS!NtfsFindStartingNode+651
fffff801`03ec1171 498b80b0000000 mov rax,qword ptr [r8+0B0h]
SYMBOL_STACK_INDEX: 7
SYMBOL_NAME: NTFS!NtfsFindStartingNode+651
FOLLOWUP_NAME: MachineOwner
IMAGE_VERSION: 10.0.10240.16412
BUCKET_ID_FUNC_OFFSET: 651
FAILURE_BUCKET_ID: 0xD6_VRF_R_INVALID_NTFS!NtfsFindStartingNode
BUCKET_ID: 0xD6_VRF_R_INVALID_NTFS!NtfsFindStartingNode
PRIMARY_PROBLEM_CLASS: 0xD6_VRF_R_INVALID_NTFS!NtfsFindStartingNode
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:0xd6_vrf_r_invalid_ntfs!ntfsfindstartingnode
FAILURE_ID_HASH: {04038402-84a3-c185-fa0a-8006e288fbae}
Followup: MachineOwner
kd> !verifier 0x80 ffffcf80c05ab050
Log of recent kernel pool Allocate and Free operations:
There are up to 0x10000 entries in the log.
Parsing 0x0000000000010000 log entries, searching for address 0xffffcf80c05ab050.
Parsed entry 0000000000010000/0000000000010000…
Finished parsing all pool tracking information.
No entries matching address ffffcf80c05ab050 have been found.
Any suggestion how to debug it?
Thanks
Mike