I’ve been working on a driver for some time, now, and I just recently started running into crashes that occur a few seconds after installing the driver. I’m not really sure what I might have changed to cause the issue, and the debug output isn’t particularly helpful.
I’m seeing that there’s an assertion failure - code c0000420 that repeatedly comes up. Some searching on this forum has led me to believe that this usually means that a DPC is running too long. However, in those posts, that issue usually seems to be followed by a DPC_QUEUE_EXECUTION_TIMEOUT_EXCEEDED bugcheck. In my case, though, it is followed by an INTERRUPT_EXCEPTION_NOT_HANDLED bugcheck. I don’t believe that I’m doing anything too time-intensive in either my ISR or DPC, but I could be wrong.
I should note that I’m using a KMDF bus driver that handles interrupts and that calls into an AVStream child device driver (whose function pointer retrieved via a query interface) during the DPC. I’m not even sure which of these layered drivers is responsible for the crash.
Any ideas of what could be causing this issue, or how to further hone in on and debug it?
Assertion failure - code c0000420 (first chance)
nt!KeAccumulateTicks+0x575:
fffff803ba0ec2e5 cd2c int 2Ch 0: kd\> gn Assertion failure - code c0000420 (first chance) nt!KeAccumulateTicks+0x575: fffff803
ba0ec2e5 cd2c int 2Ch
1: kd> g
Continuing an assertion failure can result in the debuggee
being terminated (bugchecking for kernel debuggees).
If you want to ignore this assertion, use ‘ahi’.
If you want to force continuation, use ‘gh’ or ‘gn’.
1: kd> gn
*** Fatal System Error: 0x0000003d
(0xFFFFF803B95355D0,0x0000000000000000,0x0000000000000000,0xFFFFF803BA0EC2E5)
Break instruction exception - code 80000003 (first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.
A fatal system error has occurred.
Connected to Windows 7 9200 x64 target at (Mon Jul 22 08:52:52.418 2013 (UTC - 4:00)), ptr64 TRUE
Loading Kernel Symbols
…
…
…
Loading User Symbols
Loading unloaded module list
…
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 3D, {fffff803b95355d0, 0, 0, fffff803ba0ec2e5}
Probably caused by : ntkrnlmp.exe ( nt!KeAccumulateTicks+575 )
Followup: MachineOwner
nt!RtlpBreakWithStatusInstruction:
fffff803`ba0f0930 cc int 3
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
INTERRUPT_EXCEPTION_NOT_HANDLED (3d)
Arguments:
Arg1: fffff803b95355d0
Arg2: 0000000000000000
Arg3: 0000000000000000
Arg4: fffff803ba0ec2e5
Debugging Details:
CONTEXT: fffff803b95355d0 – (.cxr 0xfffff803b95355d0)
rax=0000000000000000 rbx=fffff803ba371180 rcx=0000000000000003
rdx=0000000000000000 rsi=0000000044944ec6 rdi=0000000000000001
rip=fffff803ba0ec2e5 rsp=fffff803b9535fd0 rbp=0000000000001cc2
r8=0000000000000000 r9=fffff803ba3cb880 r10=0000000000001125
r11=fffffa8006874810 r12=ffffffffc0000120 r13=0000000000000000
r14=0000000000000002 r15=0000000000000000
iopl=0 nv up ei pl nz na pe nc
cs=0010 ss=0000 ds=002b es=002b fs=0053 gs=002b efl=00000202
nt!KeAccumulateTicks+0x575:
fffff803`ba0ec2e5 cd2c int 2Ch
Resetting default scope
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0x3D
PROCESS_NAME: System
CURRENT_IRQL: d
LAST_CONTROL_TRANSFER: from 0000000000000000 to fffff803ba0ec2e5
STACK_TEXT:
fffff803b9535fd0 00000000
00000000 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : nt!KeAccumulateTicks+0x575
FOLLOWUP_IP:
nt!KeAccumulateTicks+575
fffff803`ba0ec2e5 cd2c int 2Ch
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: nt!KeAccumulateTicks+575
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 5010ac4b
STACK_COMMAND: .cxr 0xfffff803b95355d0 ; kb
FAILURE_BUCKET_ID: X64_0x3D_VRF_nt!KeAccumulateTicks+575
BUCKET_ID: X64_0x3D_VRF_nt!KeAccumulateTicks+575