Skip to content

Est. 2011ยทMicrosoft Partner 7033487ยทDelivery under 3 minยทSupport 7 days a week

Your vault is empty.

Free Fix 0x00000133

DPC_WATCHDOG_VIOLATION 0x00000133 – PC freezes then blue screens

10 min read Updated October 5, 2026 Windows Crashes & Boot Recovery

Fix it now

The DPC watchdog fired because a single deferred procedure call or interrupt service routine exceeded its time allotment, or because the system spent a prolonged period at DISPATCH_LEVEL or above. Microsoft’s resolution is to disable the driver named in the bug check message and check with its manufacturer for an update.

The first two in WinDbg with the dump open; driverquery at an elevated Command Prompt

!analyze -v
!dpcs
driverquery /v /fo table
  1. Read the first parameter from the blue screen. 0 means a single DPC or ISR overran its allotment; 1 means the system cumulatively spent an extended period at IRQL DISPATCH_LEVEL or above.
  2. If the message names a driver, disable it to isolate the issue and get an update from the manufacturer. That is Microsoft’s documented first step.
  3. If it does not, open the newest file in %SystemRoot%\Minidump in WinDbg and run !analyze -v to see which module the DPC belonged to.
  4. Check the System log in Event Viewer for other errors in the same window – Microsoft names that as the second thing to do, and a storage or firmware error there changes the whole picture.
  5. Confirm any recently installed hardware is compatible with the Windows version in use.

In practice the drivers with real hardware latency behind them turn up most often: storage controllers, network adapters and anything polling a device in a loop. That is a pattern to test, not the documented cause.

If the machine stays up with the suspect driver replaced, stop here. The next section explains what the watchdog is measuring and how to narrow it without a debugger.

Why it happens

A DPC is work a driver defers out of its interrupt handler so the interrupt can return quickly. DPCs run at DISPATCH_LEVEL, which means the thread scheduler is disabled on that processor for the duration – nothing else on that core runs until the routine finishes. That is fine when it takes microseconds and catastrophic when it takes seconds. The freeze you notice for a second or two before the blue screen is the symptom, not a separate fault.

Microsoft publishes the budgets, and they are small: DPCs should not run longer than 100 microseconds and ISRs should not run longer than 25 microseconds, although the actual timeout values on the system are set much higher. Those figures are the design target rather than the trigger, but they tell you the scale of what a driver is supposed to be doing at this level.

The kernel keeps two accounts and parameter 1 says which one tripped. A parameter 1 of 0 means a single DPC or ISR exceeded its time allotment, with parameter 2 the DPC time count in ticks and parameter 3 the allotment. A parameter 1 of 1 means the system cumulatively spent an extended period at DISPATCH_LEVEL or above, with parameter 2 the watchdog period. In both cases Microsoft says the offending component can usually be identified with a stack trace.

The word ISR matters. Microsoft’s parameter table says “a single DPC or ISR”, which puts interrupt service routines in scope alongside deferred calls. A device whose interrupt handler is waiting on hardware that has stopped answering promptly produces this as readily as a badly written DPC does.

The driver named in the message

You have this one if A .sys file appears on the blue screen or in !analyze -v.

  1. Disable that driver to isolate the issue, which is Microsoft’s own first resolution step.
  2. Check with the manufacturer for an update. Get it from them rather than from a driver updater utility.
  3. If a recent update introduced it, roll back to the previous version rather than forward to a newer one.

Storage controller and disk path

You have this one if Freezes under disk load, or the crash arrives during a large copy or a backup.

  1. Install the chipset and storage package from the motherboard or laptop vendor rather than relying on the inbox driver.
  2. Check the disks themselves: Get-PhysicalDisk | Select FriendlyName, HealthStatus in PowerShell.
  3. A drive that answers slowly keeps its driver at DISPATCH_LEVEL longer, which is how failing storage produces this stop code without ever reporting a read error.

Network adapter and virtual adapters

You have this one if Crashes correlate with network activity, a VPN connection, or a virtualisation or packet capture product being installed.

  1. Get-NetAdapter | Select-Object Name, InterfaceDescription, DriverVersion, DriverDate to see what is loaded and how old it is.
  2. Update from the adapter vendor, and remove any virtual adapter, VPN client or capture driver you no longer use.
  3. Disable the suspect adapter as a test before uninstalling anything – it is reversible in seconds.

A different DPC or timer bug check

You have this one if 0x000000B8, 0x000000C7 or 0x00000157 rather than 0x00000133.

  1. 0x000000B8 ATTEMPTED_SWITCH_FROM_DPC: a wait operation, attach process, or yield was attempted from a DPC routine. Microsoft’s note is that the stack trace leads to the code in the original DPC routine.
  2. 0x000000C7 TIMER_OR_DPC_INVALID: a kernel timer or DPC was found in memory where it is not permitted, usually because a driver freed the memory without cancelling the timer or DPC first.
  3. 0x00000157 KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: an illegal operation on a thread’s priority floor. Parameter 3 says whether the priority counter overflowed, underflowed, or the priority value was illegal.

Full reference

Parameter 1, and what the rest mean

Parameter 1 Parameter 2 Parameter 3 Cause
0 The DPC time count, in ticks The DPC time allotment, in ticks A single DPC or ISR exceeded its time allotment
1 The watchdog period A DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK with more information The system cumulatively spent an extended period at IRQL DISPATCH_LEVEL or above

The neighbouring bug checks

Code Name What it says
0x00000133 DPC_WATCHDOG_VIOLATION The DPC watchdog executed, for one of the two reasons above
0x000000B8 ATTEMPTED_SWITCH_FROM_DPC A wait operation, attach process, or yield was attempted from a DPC routine
0x000000C7 TIMER_OR_DPC_INVALID A kernel timer or DPC was found somewhere in memory where it is not permitted
0x00000157 KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION An illegal operation was attempted on the priority floor of a particular thread

0x000000C7’s parameter 1 is worth knowing because it distinguishes what was found where it should not have been: 0x0 is a timer object, 0x1 a DPC object, 0x2 a DPC routine, 0x3 a DPC object with the wrong processor number, and 0x4 and 0x5 mean the thread’s APC disable count changed during the DPC or timer DPC routine. All of them point at a driver that freed memory without cancelling what was still registered in it.

Reading it in the debugger

Command What it gives you
!analyze -v The bug check breakdown and the module it holds responsible
!dpcs The DPC queues, which is where a long-running deferred call shows itself
k, kb The stack trace Microsoft says usually identifies the offending component

Narrowing it without a debugger

  1. Note whether the freeze correlates with disk activity, network activity or neither. That single observation removes most of the candidates.
  2. driverquery /v /fo table from an elevated prompt lists every driver with its state and start mode – scan it for anything you do not recognise.
  3. Disable one suspect device at a time in Device Manager and use the machine normally between changes. Reversible, and it costs nothing.
  4. Check powercfg /a to see which sleep states the machine supports, because a machine on modern standby has a different set of drivers active at idle from one using S3.
  5. powercfg /sleepstudy produces a modern standby report covering roughly the last three days. It is only useful on a machine actually using modern standby, which is what powercfg /a tells you.

When the driver is up to date and it still crashes

  • Roll the driver back rather than forward. A regression in a current release is at least as likely as a bug in an old one, and rolling back is a test you can undo.
  • Check disk health. Storage that answers slowly under load produces this without any SMART warning.
  • Confirm recently installed hardware is compatible with the Windows version, which is one of Microsoft’s own troubleshooting steps.
  • Remove capture, virtualisation and VPN drivers you are not using. They sit in the path whether or not the product is running.
  • Read the System log around each crash. This bug check is often the last event in a sequence that started somewhere more informative.

Every code this article covers

Code What it points at Source
0x00000133 DPC_WATCHDOG_VIOLATION: parameter 1 of 0 means a single DPC or ISR exceeded its time allotment; parameter 1 of 1 means the system cumulatively spent an extended period at IRQL DISPATCH_LEVEL or above Microsoft Learn
0x000000B8 ATTEMPTED_SWITCH_FROM_DPC: an illegal operation was attempted by a DPC routine – a wait operation, attach process, or yield Microsoft Learn
0x000000C7 TIMER_OR_DPC_INVALID: a kernel timer or DPC was found somewhere in memory where it is not permitted, usually because a driver freed the memory without cancelling the timer or DPC first Microsoft Learn
0x00000157 KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: an illegal operation was attempted on the priority floor of a particular thread; parameter 3 says whether the counter overflowed, underflowed, or the value was illegal Microsoft Learn

Confirm the fix worked

  1. The workload that used to freeze the machine runs to completion with no new dump in %SystemRoot%\Minidump.
  2. Device Manager shows the replaced driver at the version you installed.
  3. The System log has no new storage or network errors in the tested window.
  4. The brief freezes stop as well as the crashes – if they continue, the driver is still overrunning and you have only moved the threshold.

Questions people ask about this

Is this a hardware failure?

Not usually, and Microsoft’s resolution is aimed at drivers: disable the one named in the message and check with the manufacturer for updates. Hardware gets into it indirectly, when a device answers slowly enough to keep its driver at DISPATCH_LEVEL for too long.

What is the difference between parameter 1 of 0 and 1?

0 is one single DPC or ISR overrunning its time allotment, with the count and the allotment in parameters 2 and 3. 1 is the system cumulatively spending too long at DISPATCH_LEVEL or above, with the watchdog period in parameter 2. The first points at one routine; the second at a pattern.

How long is a DPC allowed to run?

Microsoft’s published guidance is that DPCs should not run longer than 100 microseconds and ISRs not longer than 25, while noting the actual timeout values on the system are set much higher. Treat those as the design target rather than the trigger point.

powercfg /sleepstudy returns nothing useful.

It reports on modern standby quality over roughly the last three days, so on a machine using S3 sleep there is nothing for it to report. Run powercfg /a first to see which sleep states the machine actually supports.

Related error codes

Was this article helpful?

Your feedback helps us improve our documentation.

Related articles

License Error END_OF_NT_EVALUATION_PERIOD 0x00000098 – evaluation Windows Server shuts down Free Fix MEMORY_MANAGEMENT 0x0000001A and PFN_LIST_CORRUPT 0x0000004E blue screens Free Fix System Restore failed with 0x80070091 or 0x81000203 on Windows 10 and 11 Free Fix ACPI_BIOS_ERROR 0x000000A5 and HAL_INITIALIZATION_FAILED 0x0000005C
โ† Back to Knowledge Base