0x00000133 DPC_WATCHDOG_VIOLATION
Windows runs a watchdog that measures how long drivers spend at high priority. When one exceeds its allowance, the watchdog stops the machine deliberately rather than let a driver starve the rest of the system indefinitely. This stop code has an unusually strong association with storage - specifically SSD firmware and a controller driver mismatch that has been producing it for years.
What you are looking at
Your PC ran into a problem and needs to restart.
Stop code: DPC_WATCHDOG_VIOLATION
In Event Viewer the matching entries look like this:
Log Name: System
Source: BugCheck
Event ID: 1001
Level: Error
The computer has rebooted from a bugcheck. The bugcheck was: 0x00000133 (0x0000000000000001, 0x0000000000001e00, 0x0000000000000000, 0x0000000000000000).
What the error actually means
When hardware raises an interrupt, the driver handling it is expected to do the minimum possible immediately and defer the rest. That deferred work runs as a Deferred Procedure Call, at DISPATCH_LEVEL - high enough that ordinary thread scheduling is suspended while it executes.
That arrangement only works if DPCs are short. A DPC that runs for a long time blocks every thread on that processor, and the machine becomes unresponsive with no mechanism to intervene.
So Windows watches. If a single DPC runs past its allowance, or if the system spends too much cumulative time at DISPATCH_LEVEL, the watchdog fires and stops the machine. It is a deliberate safety net catching a driver behaving badly - which means, as with IRQL violations, the fault belongs to a specific driver rather than to Windows.
Reading the parameters
Parameter 1 splits this into two genuinely different diagnoses, and the remaining parameters shift meaning with it - so read parameter 1 first and then interpret the rest accordingly.
For scale: Microsoft states that DPCs should not run longer than 100 microseconds and interrupt service routines no longer than 25 microseconds, while the actual timeouts enforced are set much higher. A routine that trips this watchdog is not slightly slow, it is orders of magnitude over.
| Parameter | What it holds |
|---|---|
| 1 = 0x0 | A single DPC or ISR exceeded its time allotment. Here parameter 2 is the DPC time count in ticks, parameter 3 is the allotment it was permitted, and parameter 4 is the address of the DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK. Microsoft notes the offending component can usually be identified from a stack trace - this is the tractable case. |
| 1 = 0x1 | The system cumulatively spent too long at DISPATCH_LEVEL or above. Here parameter 2 is the watchdog period, parameter 3 is the address of the DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, and parameter 4 is reserved. This is the harder case: Microsoft notes the code may not stop in the offending area at all, so the stack often does not name the culprit and event tracing is needed instead. |
| Comparing 2 and 3 when parameter 1 is 0 | The two values are directly comparable - Microsoft's own example shows a tick count of 501 against an allotment of 500. How far over the limit the routine ran tells you whether it was marginally slow or badly stuck. |
| The triage block | Whichever parameter holds it, dt nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK <address> displays it. The !dpcs command lists queued DPCs, which is often more immediately useful. |
What actually triggers it
This is one of the few stop codes with a genuinely dominant cause rather than a spread.
| Cause | How often | Detail |
|---|---|---|
| The wrong SATA controller driver | Common | The best-known cause of this bugcheck. A system running Intel's Rapid Storage driver (iaStorA.sys) with an SSD it does not handle well produces this repeatedly. Switching to Microsoft's standard AHCI driver (storahci.sys) resolves a large share of cases outright. |
| Outdated SSD firmware | Common | Genuinely fixed by firmware updates, which is unusual - most 'update the firmware' advice is speculative, but here vendors have shipped releases specifically addressing controller stalls that cause this. |
| Network and Wi-Fi drivers | Occasional | Network stacks do substantial DPC work. An old or mismatched adapter driver overruns its allowance, particularly under sustained load. |
| USB devices and hubs | Occasional | A faulty device, a failing hub or an unpowered hub with too much attached can stall the USB stack long enough to trip the watchdog. Cheap docking stations are a recurring offender. |
| Chipset and platform drivers | Occasional | Especially on a fresh Windows install where Microsoft's generic drivers are still in place instead of the vendor's. |
| Failing storage hardware | Occasional | A drive that stalls while retrying reads holds up the storage DPC. Distinguishable from a firmware bug by SMART data and by whether the problem follows the drive. |
Narrowing it down
Given how concentrated the causes are, checking storage first is a better use of time than a general sweep.
Read parameter 1
Pull it from the bugcheck event in the System log, or from !analyze -v. Then check IMAGE_NAME in the same output - Microsoft's own worked example for the single-DPC case names BthA2DP.sys, a Bluetooth audio driver, which is exactly the kind of peripheral driver that turns up here.
A value of 0 means one specific DPC or ISR overran, and Microsoft notes the offending component can usually be identified from a stack trace - so read IMAGE_NAME and the stack, and you often have your answer.
A value of 1 is the cumulative case and is harder: Microsoft warns the code may not stop in the offending area at all, so the named module can be misleading. It is also the pattern most often seen with the storage causes below.
Identify your storage controller driver
Open Device Manager, expand IDE ATA/ATAPI controllers and read the entry. Alternatively:
Get-PnpDevice -Class SCSIAdapter,HDC -PresentOnly |
Select-Object FriendlyName, Status |
Format-Table -AutoSize
If it names an Intel Rapid Storage or vendor-specific controller rather than Standard SATA AHCI Controller, you are in the most common failure case and the driver swap below is the first thing to try.
Check drive health and firmware version
Run CrystalDiskInfo. Note the model, the firmware revision and the health status, then check the manufacturer's support page for a newer firmware release.
An SSD on old firmware with a known fix is the single most likely explanation. Degraded health moves this from a firmware problem to a failing-drive problem.
Disconnect USB peripherals
Unplug everything except keyboard and mouse - especially docks, hubs, external drives and capture devices - and run the machine for a day.
If the crashes stop, reconnect devices one at a time. A failing hub or a device with a bad driver is easy to find this way and impossible to find any other way.
Fixes, cheapest first
The first two resolve most cases. Do them before anything else.
Switch to the standard AHCI driver
Read this before the steps, not afterDo not do this if your storage runs in RAID mode or with Intel VMD enabled. Switching the controller driver in either configuration can leave the machine unbootable.
VMD is the one that catches people out. On 11th-generation and later Intel platforms, particularly OEM laptops, it is frequently enabled by default with a single ordinary NVMe drive and no RAID array anywhere. If you check only for RAID you will conclude this is safe when it is not.
Check the storage mode in UEFI first. If it says anything other than AHCI, stop here.
Check BitLocker before changing firmware settingsIf the drive is protected by BitLocker or Windows Device Encryption, changing storage-controller settings triggers a recovery-key prompt on the next boot. Without the 48-digit key, the volume is gone permanently.
Windows 11 turns Device Encryption on by default on a lot of consumer hardware, so check rather than assume:
manage-bde -statusIf protection is on, retrieve your recovery key from your Microsoft account first, or suspend protection for a single reboot:
manage-bde -protectors -disable C: -RebootCount 1With both of those checked, this is the classic fix for this bugcheck and it is reversible.
- Open Device Manager and expand IDE ATA/ATAPI controllers.
- Right-click the SATA AHCI controller entry and choose Update driver.
- Choose Browse my computer, then Let me pick from a list of available drivers.
- Select Standard SATA AHCI Controller and confirm.
- Reboot.
Watch outIf the machine will not boot afterwards, boot from Windows installation media, choose Repair your computer, and use System Restore to reverse the driver change.
Update SSD firmware
Get the model and current firmware revision from CrystalDiskInfo, then check the vendor's support page. Samsung Magician, Crucial Storage Executive, WD Dashboard and the equivalents handle this for their own drives.
Watch outBack up before flashing firmware. Interrupting a firmware update can leave the drive unusable, so do it on mains power and do not touch the machine while it runs.
Update chipset and network drivers
Install the chipset package from your board or system vendor rather than relying on what Windows Update supplies. Then update the network adapter driver from the adapter vendor.
On a laptop, the system vendor's driver is usually the right one, since the adapter is often a customised variant.
Isolate USB devices
Run with only keyboard and mouse connected. If stable, reconnect one device per day. Pay particular attention to unpowered hubs, docking stations and anything drawing significant current.
Find the DPC with Verifier or LatencyMon
LatencyMon is the gentler option: it runs in Windows and reports which driver is responsible for the highest DPC execution times, often identifying the offender without a single crash.
If that is inconclusive, Driver Verifier with DPC checking enabled will force the issue - enable it for non-Microsoft drivers, use the machine until it bugchecks, then read the dump and run
verifier /reset.Watch outTry LatencyMon first. It costs nothing, runs inside Windows, and does not risk a boot loop - it will often name the offending driver without a single crash.
Verifier deliberately increases crashes and can cause a boot loop. Run
verifier /bootmode resetonbootfailbefore enabling any checks - it makes Verifier disable itself automatically if the machine fails to start, which removes most of the risk. Your manual exit is Safe Mode followed byverifier /reset. Full settings and the escape route are in the Driver Verifier guide.
When it is the hardware, not Windows
Signals that the drive itself is failing rather than its firmware or driver being wrong:
- SMART reports reallocated or pending sectors, or an SSD near the end of its rated endurance.
- The system freezes for seconds at a time during file operations, outside of crashes.
- The problem follows the drive when moved into another machine.
- Firmware is already current and the standard AHCI driver made no difference.
- Boot times have been climbing, or the drive occasionally disappears from UEFI.
- Other storage-related stop codes appear alongside this one.
Because the software fixes here are so effective, exhausting them genuinely narrows things. A machine still producing this bugcheck on current firmware, with the standard AHCI driver, and no USB peripherals attached, has a hardware problem rather than a configuration one.
Frequently asked
Why is this stop code so often about SSDs specifically?
Because storage drivers do a lot of their work in DPCs, and an SSD controller that stalls - whether from a firmware bug, garbage collection, or a driver that mishandles a command - blocks that DPC while it waits. The watchdog measures exactly the thing an unresponsive drive causes. It is less that SSDs are unreliable and more that this particular watchdog is well positioned to notice when one hesitates.
Is switching to the standard AHCI driver a downgrade?
Barely, for most people. Intel RST adds features around RAID and some power management, and its raw performance difference on a single SSD is small enough to be hard to measure in normal use. If the swap stops the crashes, that trade is not close. The one situation where it genuinely matters is a RAID array, where you should not switch at all.
It only happens under heavy load. Does that rule out storage?
No - load is exactly when storage DPCs are busiest and when a marginal drive is most likely to stall. Load correlation narrows things toward whichever subsystem is under load rather than away from storage. If the load is disk-heavy, it points at storage more strongly, not less.
What is the difference between this and IRQL_NOT_LESS_OR_EQUAL?
Both involve drivers misbehaving at raised priority, but they break different rules. 0xA means a driver touched memory it could not fault on at that level - an illegal access. 0x133 means a driver took too long - a timing violation. Different detection, and different fixes: the first is about which memory was touched, the second about how long something ran.
Related errors
- 0x0000000AIRQL_NOT_LESS_OR_EQUALA driver accessed memory at an interrupt level too high to survive the fault. Nearly always a driver.
- 0x00000154UNEXPECTED_STORE_EXCEPTIONMemory compression hit an error it couldn't handle. Check the drive before the RAM.
- 0x000000EFCRITICAL_PROCESS_DIEDA process Windows can't live without exited. Often a boot loop, so the fixes run from recovery.