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.

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. Repair Windows system files. Open Terminal (Admin) and run sfc /scannow. If it reports damage it could not repair, run DISM /Online /Cleanup-Image /RestoreHealth, restart, and run sfc /scannow once 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.

What the first parameter of 0x4E can mean
First parameterWhat Microsoft describesWhere to look first
0x1 or 0x2A list head or list entry in the PFN lists was corruptedRecent driver changes, then memory
0x6The hardware or prototype page table entries were corrupted, which Microsoft says can come from single-bit memory errors or broken DMA transfersMemory test at stock settings, then devices that use DMA
0x7A driver unlocked a page more times than it locked itThe driver named in the dump
0x8DThe free page list holds a page in an inconsistent state, which Microsoft says most likely indicates a hardware problemMemory test and stock settings
0x9AA driver tried to free a page that was still locked for I/OThe driver named in the dump

Source: Microsoft Learn: Bug Check 0x4E PFN_LIST_CORRUPT ↗

When to stop and protect your data

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