I’ve not seen this error before, so I’m guessing. Are you having any
paged code in your driver? If so, a timer DPC must NOT be paged, and must
be made permanently resident, because it must be present when it is
called, and a page fault will be fatal. Reading the dump suggests that
the kernel, instead of taking a generic BSOD on “access fault”, is telling
you some more detailed information. It appears that it has checked a
range of addresses at the nominal address of the DPC and found them
lacking. Such as being non-existent, or paged out.
If you feel a compulsion to do a driver with paged code, the correct
approach, in my opinion, is to NOT used any paged code until the driver is
known to be functioning correctly. THEN, and only then, optimize it by
making pageable parts pageable. That way, you know where the potential
failure points are, and that they are artifacts of using pageable code.
joe
Hi,
I am having hard time with a crash. I have analyzed it using WinDbg and
this is what I have got,=======================================
Kernel Complete Dump File: Full address space is availableWindows Server 2008/Windows Vista Kernel Version 6002 (Service Pack 2) MP
(4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 6002.18686.amd64fre.vistasp2_gdr.120824-0336
Machine Name:
Kernel base = 0xfffff80002259000 PsLoadedModuleList = 0xfffff800
0241ddd0
Debug session time: Thu Jun 27 18:39:34.320 2013 (UTC + 5:30)
System Uptime: 0 days 0:29:29.340Loading Kernel Symbols
…
…
…
Loading User SymbolsLoading unloaded module list
…
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************Use !analyze -v to get detailed debugging information.
BugCheck C7, {0, fffffa60040ab260, fffffa60040ab260, fffffa60040ab2a0}
Probably caused by : testflt.sys ( testflt!InitializeDelayedEvent+124 )
Followup: MachineOwner
0: kd> !analyze -v
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************TIMER_OR_DPC_INVALID (c7)
Kernel timer or DPC used incorrectly.
Arguments:
Arg1: 0000000000000000, Timer object found in memory which must not
contain such items.
Arg2: fffffa60040ab260, Address of the timer object.
Arg3: fffffa60040ab260, Start of memory range being checked.
Arg4: fffffa60040ab2a0, End of memory range being checked.Debugging Details:
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0xC7
PROCESS_NAME: System
CURRENT_IRQL: c
TAG_NOT_DEFINED_c000000f: FFFFF800032D7FB0
LAST_CONTROL_TRANSFER: from fffff8000233d5d3 to fffff800022b0ad0
STACK_TEXT:
fffff800032d19a8 fffff800
0233d5d3 : 00000000000000c7 00000000
00000000
fffffa60040ab260 fffffa60
040ab260 : nt!KeBugCheckEx
fffff800032d19b0 fffff800
026aa89e : 0000000000000000 00000000
00000002
0000000000000000 fffffa60
040ab260 : nt!KeCheckForTimer+0x153
fffff800032d1a00 fffffa60
0408a390 : fffffa8005d102d0 00000000
00000002
0000000000000000 00000000
00000001 : nt!VerifierKeInitializeTimerEx+0x2e
fffff800032d1a30 fffff800
022b49fd : fffff800032d1ad8 00000000
00000000
0000000000000003 00000000
00000003 : testflt!InitializeDelayedEvent+0x124
[e:\wd\cat\projects\novashield\ns2.0\sdk\source\sdk\safeengine\policy\processstate.c
@ 542]
fffff800032d1a70 fffff800
022b3e18 : fffff800032d1cd0 00000000
00000002
fffff800032d1cc8 00000000
00000010 : nt!KiTimerListExpire+0x30d
fffff800032d1ca0 fffff800
022b45af : 000004f9f4dd0787 00000000
00000000
fffff80000000010 fffff800
023cfa80 : nt!KiTimerExpiration+0x1d8
fffff800032d1d10 fffff800
022b4ed2 : fffff800023cc680 fffff800
023cc680
0000000000000000 fffff800
023d1b80 : nt!KiRetireDpcList+0x1df
fffff800032d1d80 fffff800
02484860 : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : nt!KiIdleLoop+0x62
fffff800032d1db0 00000000
fffff800 : 0000000000000000 00000000
00000000
0000000000000000 00000000
00000000 : nt!zzz_AsmCodeRange_End+0x4
fffff800032cb0b0 00000000
00000000 : 0000000000000000 00000000
00000000
0000000000000000 00680000
00000000 : 0xfffff800STACK_COMMAND: kb
FOLLOWUP_IP:
testflt!InitializeDelayedEvent+124 [e:\wd\testflt\testflt.c @ 542]
fffffa600408a390 488b15510c0200 mov rdx,qword ptr [testflt!gShortTime (fffffa60
040aafe8)]SYMBOL_STACK_INDEX: 3
SYMBOL_NAME: testflt!InitializeDelayedEvent+124
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: testflt
IMAGE_NAME: testflt.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 51a5de86
FAILURE_BUCKET_ID: X64_0xC7_VRF_testflt!InitializeDelayedEvent+124
BUCKET_ID: X64_0xC7_VRF_testflt!InitializeDelayedEvent+124
Followup: MachineOwner
=======================================
Any comment could help me fixing the crash.
Best regards,
Sushilkumar.
NTFSD is sponsored by OSR
OSR is hiring!! Info at http://www.osr.com/careers
For our schedule of debugging and file system seminars visit:
http://www.osr.com/seminarsTo unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer