Bug Check 0xC7: TIMER_OR_DPC_INVALID
The TIMER_OR_DPC_INVALID bug check has a value of 0x000000C7. This is issued if a kernel timer or delayed procedure call (DPC) is found somewhere in memory where it is not permitted.
Important
This article is for programmers. If you're a customer who has received a blue screen error code while using your computer, see Troubleshoot blue screen errors.
TIMER_OR_DPC_INVALID Parameters
Parameter 1 | Parameter 2 | Parameter 3 | Parameter 4 | Cause of error |
---|---|---|---|---|
0x0 |
Address of the timer object |
Start of memory range being checked |
End of memory range being checked |
The timer object was found in a block of memory where a timer object is not permitted. . |
0x1 |
Address of the DPC object |
Start of memory range being checked |
End of memory range being checked |
The DPC object was found in a block of memory where a DPC object is not permitted. |
0x2 |
Address of the DPC routine |
Start of memory range being checked |
End of memory range being checked |
The DPC routine was found in a block of memory where a DPC object is not permitted. |
0x3 |
Address of the DPC object |
Processor number |
Number of processors in the system |
The processor number for the DPC object is not correct. |
0x4 |
Address of the DPC routine |
The thread's APC disable count before the kernel calls the DPC routine |
The thread's APC disable count after the DPC routine is called |
The thread's APC disable count was changed during DPC routine execution. The APC disable count is decremented each time a driver calls KeEnterCriticalRegion, FsRtlEnterFileSystem, or acquires a mutex. The APC disable count is incremented each time a driver calls KeLeaveCriticalRegion, KeReleaseMutex, or FsRtlExitFileSystem. |
0x5 |
Address of the DPC routine |
The thread's APC disable count before the kernel calls the DPC routine |
The thread's APC disable count after the DPC routine is called |
The thread's APC disable count was changed during the execution of timer DPC routine. The APC disable count is decremented each time a driver calls KeEnterCriticalRegion, FsRtlEnterFileSystem, or acquires a mutex. The APC disable count is incremented each time a driver calls KeLeaveCriticalRegion, KeReleaseMutex, or FsRtlExitFileSystem. |
Cause
This condition is usually caused by a driver failing to cancel a timer or DPC before freeing the memory where it resides.
Resolution
If you are the driver writer, use the information obtained through this bug check to fix the bugs in your code.
If you are a system administrator, you should unload the driver if the problem persists.