0x0000001A MEMORY_MANAGEMENT
The memory manager checks its own structures constantly, and when it finds one in a state that should be impossible it stops the machine rather than continue with corrupted bookkeeping. Of all the stop codes, this is the one most likely to genuinely be the RAM - but not reliably enough to buy memory on the strength of it, and the first parameter is what tells you which case you have.
What you are looking at
Your PC ran into a problem and needs to restart.
Stop code: MEMORY_MANAGEMENT
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: 0x0000001a (0x0000000000041790, 0xfffff68000138000, 0x000000000000ffff, 0x0000000000000000).
What the error actually means
The memory manager tracks which physical pages exist, which are in use, what each one holds, and how virtual addresses map onto them. That bookkeeping lives in structures like the page frame number database and the page tables.
Those structures are internally consistent by construction. If the manager finds an entry that contradicts another - a page marked free that is still mapped, a page table entry pointing somewhere impossible - then something has damaged memory that Windows relies on absolutely. Continuing would mean writing user data into unpredictable places.
So it stops. And because the damage could have come from failing hardware, a misbehaving driver, or corrupted data read back from disk, the code itself is broad. The subtype in parameter 1 is where the real information is.
Reading the parameters
Parameter 1 is a subtype code and it changes the entire diagnosis. Microsoft documents around forty values; these are the ones you are most likely to meet, with what parameters 2 to 4 carry for each. Note that parameters 2, 3 and 4 mean different things depending on the subtype - there is no single interpretation.
| Parameter | What it holds |
|---|---|
| 0x403 | The page table and page frame numbers are out of sync. Microsoft states this is probably a hardware error - especially if parameters 3 and 4 differ by only one bit. That single-bit detail is the most useful thing on this page: a one-bit discrepancy is the classic signature of a memory bit flip, and it distinguishes failing hardware from a driver writing nonsense. |
| 0x404 | While deleting a system page, an inconsistency was found between the PFN and the current page table entry pointer. Parameter 2 is the expected PTE, parameter 3 the PTE contents, parameter 4 the PFN's PTE. |
| 0x41790 | A page table page has been corrupted. On 64-bit Windows, parameter 2 holds the address of the PFN for the corrupted page table page. Strongly associated with hardware. |
| 0x41792 | A corrupted PTE was detected. Parameter 2 is the address of the PTE; parameters 3 and 4 hold its low and high parts. |
| 0x61941 | The paging hierarchy is corrupted. Parameter 2 points at the virtual address that caused the fault. |
| 0x3f | An inpage operation failed a cyclic redundancy check. Parameter 2 is the pagefile offset, parameter 3 the page's CRC, parameter 4 the expected CRC. This one implicates storage rather than memory - data came back from the page file wrong. Check the drive before the RAM. |
| 0x6001 | The memory store component's private memory range is corrupted and has become inaccessible. Worth knowing because it connects this bugcheck to UNEXPECTED_STORE_EXCEPTION - both involve the memory compression store. |
| 0x31 | The image relocation fix-up table or code stream has been corrupted. Microsoft notes this is probably a hardware error. |
| 0x5100 | The allocation bitmap is corrupted - the memory manager was about to overwrite a virtual address already in use. |
| 0x9696 | A PFN was found with corrupted linkage, no longer connected to its top-level process. Indicates corrupted PFN structures. |
What actually triggers it
This is the stop code where memory hardware genuinely leads the list, which is unusual.
| Cause | How often | Detail |
|---|---|---|
| Failing RAM | Common | A defective cell corrupts whatever is stored in it. When that happens to be page table data, this is the result. Of all the common stop codes, this is the one where a memory test is most likely to actually find something. |
| Unstable memory profile | Common | XMP and EXPO profiles are tested by the module maker, not validated against your specific CPU memory controller and board. A profile that is slightly out of reach produces exactly this pattern, intermittently, on hardware that tests clean at stock. |
| Drivers corrupting pool memory | Occasional | A driver that writes past the end of an allocation damages whatever is next to it. The memory manager notices later, at a point unrelated to the guilty code. |
| Storage or filesystem corruption | Occasional | Paged data read back incorrectly from a failing drive arrives in memory already wrong. A failing SSD or a corrupt page file can produce this. |
| CPU memory controller or board fault | Rare | Where you end up when memory tests clean in another machine but the fault stays with this one. |
Narrowing it down
Record the subtype first. It decides which of the following is even worth doing.
Write down parameter 1 from every crash
Pull the bugcheck records from the event log so you have the full parameter set for each occurrence:
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1001} |
Where-Object { $_.Message -match '0x0000001a' } |
Select-Object TimeCreated, Message |
Format-List
A consistent subtype across crashes is a coherent single fault. Subtypes that vary point at general memory corruption rather than one specific broken thing - which favours hardware.
If your subtype is not in the table above, check Microsoft's full reference - values such as 0x41284, 0x41201 and 0x5003 are documented as belonging to earlier Windows versions, so seeing one on a current build is unusual and worth noting.
Test memory at stock settings
Disable XMP or EXPO first, then run MemTest86 from USB for at least four full passes. Test at stock before testing with the profile enabled, so you can tell a bad module from an over-ambitious profile.
Errors at stock mean a genuinely defective module. Clean at stock but errors with the profile enabled means the modules are fine and the profile is not achievable on this board and CPU - which is a settings problem, not a purchase.
Check the drive
Run chkdsk /scan on the system volume and check SMART attributes with CrystalDiskInfo. Pay attention to reallocated sector counts on a hard drive, and to remaining life and media errors on an SSD.
Storage problems produce memory-manager crashes because paged data comes back wrong. A drive flagged as anything other than healthy moves to the front of the queue.
Fixes, cheapest first
Ordered so that the free tests come before anything you would pay for.
Drop to stock memory settings
In UEFI, disable XMP, EXPO or any manual memory tuning and let the modules run at their JEDEC default speed. Performance loss is modest and it costs nothing.
Run this way for several days. If the crashes stop, you have your answer - and the fix is either to accept stock, loosen the primary timings, or nudge the memory controller voltage rather than assume the advertised speed is guaranteed on your combination of parts.
Test each module individually
If MemTest86 reports errors with everything installed, find out which module by testing them one at a time - and test each one in the same slot, so a faulty slot does not get blamed on a good module.
- Power down and remove all but one module.
- Run MemTest86 for at least four passes.
- Repeat with each module in that same slot.
- If every module passes alone but the set fails together, suspect the slot, the board, or the memory controller.
Watch outMemory is usually sold in matched kits. If one module is faulty and under warranty, claim the kit rather than the single stick - mixing a replacement into a kit often reintroduces instability.
Verify system files and the drive
Corrupted paged data produces this bugcheck even when the memory is perfect.
sfc /scannowDISM /Online /Cleanup-Image /RestoreHealthchkdsk C: /scan- Check SMART data for the system drive and update its firmware if the vendor has a newer version.
Rebuild the page file
A corrupted page file feeds bad data straight back into memory. Set the page file to None in System Properties, reboot, then set it back to system-managed and reboot again. This forces a fresh one.
Worth doing specifically if the crashes began after an unclean shutdown or a storage problem.
Hunt the driver with Verifier
If memory tests clean and the drive is healthy, a driver is corrupting pool memory. Driver Verifier with Special Pool enabled is built precisely to catch that - it places allocations so that an overrun faults immediately rather than silently damaging a neighbour.
Enable it for non-Microsoft drivers only, use the machine until it bugchecks, then read the dump and run
verifier /resetafterwards.Watch outVerifier 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 this is memory or board hardware rather than software:
- MemTest86 reports errors at stock settings.
- Parameter 1 is
0x41790or0x41284across several crashes. - Crashes continue after a clean Windows install.
- Other stop codes appear alongside this one, especially
0x50and0x3B. - The system drive reports reallocated sectors, pending sectors, or degraded SSD health.
- Removing one module stops the crashes.
Memory is one of the few components you can test conclusively at home and, if it is at fault, one of the cheapest to replace. That makes this bugcheck unusually solvable - work through the tests properly and you will normally arrive at a definite answer rather than a guess.
Frequently asked
Windows Memory Diagnostic passed. Is my RAM fine?
Not established. The built-in tool runs a short, limited set of patterns and misses faults that a thorough tester finds in the first hour. Treat a pass from it as almost no information. MemTest86 booted from USB, run for several passes, is the test worth trusting - and even then a clean run does not fully exonerate memory against intermittent faults.
Is XMP actually risky? It is an advertised speed.
It is advertised by the module manufacturer, who validated it on their own test platform. Whether it works depends on your CPU's memory controller and your board's trace layout, and neither is covered by that validation. Running XMP is normal and usually fine - but when a machine is producing memory-manager bugchecks, treating the profile as above suspicion is a mistake. Testing at stock costs ten minutes.
Can a failing SSD cause a MEMORY_MANAGEMENT crash?
Yes, and it is under-considered. Windows pages memory to disk continuously. If the drive returns corrupted data, that corruption lands in memory and the manager finds an inconsistency it cannot explain. Check drive health before concluding the RAM is bad - the symptom points at memory, but the cause can be one layer down.
I get a different parameter 1 every time. What does that mean?
It favours hardware. A driver bug tends to damage the same structure in the same way, producing a consistent subtype. Corruption that lands somewhere different on each occasion is what failing memory looks like, because which bits go bad depends on what happened to be stored where.
Related errors
- 0x00000050PAGE_FAULT_IN_NONPAGED_AREAMemory that could never be paged out was missing anyway. Points harder at RAM than most codes.
- 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.