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 Info If You Have Received a STOP Code
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss. A hardware device, its driver, or related software might have caused this error. If your copy of Windows came with your computer, call the manufacturer of your computer. If you purchased Windows separately from your computer, Microsoft provides support. To find contact info for Microsoft or your computer manufacturer, Contact Support.
If you have experience with computers and want to try to recover from this error, follow the steps provided in the Microsoft article Resolving STOP (Blue Screen) Errors in Windows.
These actions might prevent an error like this from happening again:
- Download and install updates and device drivers for your computer from Windows Update.
- Scan your computer for computer viruses.
- Check your hard disk for errors.
TIMER_OR_DPC_INVALID Parameters
The following parameters are displayed on the blue screen.
| 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.
Send comments about this topic to Microsoft
Build date: 4/9/2013