What PFN_LIST_CORRUPT means
Bug check 0x4E means the page frame number (PFN) list, which the memory manager uses to keep track of physical memory pages, is corrupted. Microsoft notes that the usual cause is a driver handing the memory manager a bad memory descriptor list, for example by unlocking the same pages twice. A few subtypes instead point toward hardware, such as single-bit memory errors or broken DMA transfers. The stop code alone does not say which side the fault is on.
Common causes
- A driver that mishandles memory descriptor lists, often one recently installed or updated
- Storage, network, security or virtualization software that works close to the kernel
- Faulty RAM, including single-bit errors that corrupt the page tables
- A memory profile (XMP, EXPO) or overclock that is not stable
How to fix PFN_LIST_CORRUPT
Work through these in order and test after each one. Stopping as soon as the crashes stop tells you which change mattered.
- Undo the most recent change. If the blue screens began after a Windows update, a new driver or new software, remove that change first. Uninstall the update from Settings, Windows Update, Update history, or roll a driver back in Device Manager (right-click the device, Properties, Driver, Roll Back Driver).
- Note the file name on the blue screen. If the screen shows a line such as "What failed" followed by a .sys file, write it down. Searching that file name shows which driver it belongs to, which tells you what to update or remove. The named file is the code that crashed, which is not always the root cause.
- Return the PC to stock settings. Reset the BIOS to defaults, then leave XMP or EXPO, CPU or GPU overclocks and undervolts (including per-core offsets such as Curve Optimizer) switched off while you test. If the crashes stop, re-enable one setting at a time to find the unstable one.
- Test the memory. Run Windows Memory Diagnostic (search for it in Start) for a quick check, then MemTest86 for several passes if the crashes continue. Any error points to a faulty stick or slot, or to memory settings the hardware cannot run reliably.
- Repair Windows system files. Open Terminal (Admin) and run
sfc /scannow. If it reports damage it could not repair, runDISM /Online /Cleanup-Image /RestoreHealth, restart, and runsfc /scannowonce more.
Reading the crash evidence for 0x4E
Microsoft’s bug check reference says the first parameter of 0x4E names the kind of violation, and the other parameters change meaning with it. That is why two PFN_LIST_CORRUPT crashes can have different causes.
Windows normally saves a small dump in C:\Windows\Minidump, and the BugCheck event (ID 1001 in the System log of Event Viewer) records the parameters. If crashes repeat, keep those files: a debugger’s !analyze -v output shows the subtype and may name the driver involved.
| First parameter | What Microsoft describes | Where to look first |
|---|---|---|
| 0x1 or 0x2 | A list head or list entry in the PFN lists was corrupted | Recent driver changes, then memory |
| 0x6 | The hardware or prototype page table entries were corrupted, which Microsoft says can come from single-bit memory errors or broken DMA transfers | Memory test at stock settings, then devices that use DMA |
| 0x7 | A driver unlocked a page more times than it locked it | The driver named in the dump |
| 0x8D | The free page list holds a page in an inconsistent state, which Microsoft says most likely indicates a hardware problem | Memory test and stock settings |
| 0x9A | A driver tried to free a page that was still locked for I/O | The driver named in the dump |
If the crashes continue with every recent driver change removed, stock settings and a clean full memory test, keep the minidump and have a technician read the first parameter with a debugger. That one value separates a driver fault from a hardware fault far better than the stop code does.
Not sure this is your code?
The stop code appears as text on the blue screen. If the PC restarted before you could read it, open Event Viewer, then Windows Logs, then System, and look for a BugCheck event with ID 1001. You can also search all stop codes.
Related guides
Other memory errors
- PAGE_FAULT_IN_NONPAGED_AREA (0x50)
- MEMORY_MANAGEMENT (0x1A)
- BAD_POOL_HEADER (0x19)
