0X000002CD

Fix ERROR_WAS_LOCKED (0X000002CD) on Windows 10/11

Windows Errors Intermediate 👁 0 views 📅 May 26, 2026

This error means a memory page was double-locked. Kill the conflicting driver or process, then fix registry permissions.

What you're dealing with

You've got the ERROR_WAS_LOCKED (0X000002CD) error. It's rare, but when it hits, it usually freezes an app or causes a blue screen with a PAGE_LOCKED or POOL_CORRUPTION bug check. The immediate frustration is real—one minute your program's running, the next it's locked up. Let's fix it.

First, the fix that works 90% of the time

Step 1: Find the offending process or driver

Open an admin Command Prompt (Win+R, type cmd, hit Ctrl+Shift+Enter). Run:

poolmon /p

If you don't have poolmon installed, grab it from the Windows SDK (part of Debugging Tools). The output shows memory pool tags. Look for a tag with a high Locked count—usually marked with a L in the Type column. A tag like MmSt or CMap with a locked count over 10 is suspicious.

Most common culprit: a buggy graphics driver or antivirus filter driver. NVIDIA drivers before version 472.12 had a known issue with double-locking shared memory pages. Check your driver date—if it's older than mid-2021, update it.

Step 2: Kill the process holding the lock

Once you know the pool tag, use this to find the process:

poolmon /p /g [TAG]

Swap [TAG] for the tag you found. Poolmon will show which process owns that pool. Open Task Manager, find that process (usually a .exe name), and kill it. If it's a system process like svchost.exe, note its PID and reboot—force-killing system processes can crash the OS.

Step 3: Clear the lock (registry patch)

Sometimes the lock persists even after killing the process. That's because the memory page is still marked as locked in the kernel's memory manager. You need to clear it at boot. Reboot into Safe Mode (hold Shift while clicking Restart, then Troubleshoot > Startup Settings > Restart > choose Safe Mode). Once in Safe Mode, open Registry Editor and navigate to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Create a new DWORD (32-bit) named ClearPageLockedOnBoot and set its value to 1. Reboot normally. This tells Windows to ignore orphaned locked pages on startup.

Why step 3 works

What's actually happening here is that the kernel's memory manager tracks each page's lock state with a reference counter. When a driver locks a page (say, for DMA transfer), it increments the counter. Normally, unlocking decrements it. But if the driver crashes after locking but before unlocking, the counter stays at 1. The page is now stuck locked—no other driver can touch it. That ClearPageLockedOnBoot registry key tells the memory manager to zero out all lock counters at startup, effectively releasing orphaned pages. It's a brute-force fix, but it's safe because no driver is using those pages at boot time anyway.

Less common variations

  • VMware or VirtualBox host drivers: If you use virtualization software, the host's network or storage filter driver can double-lock pages during snapshot creation. Try updating VMware Workstation to version 16.2.3 or later—they fixed a race condition in the vmxnet3 driver that caused this.
  • Third-party firewall suites: ZoneAlarm and older versions of Comodo Firewall inject a driver into the network stack. That driver sometimes locks shared memory pages during packet inspection. Uninstall the firewall, test, then reinstall a newer version.
  • Hardware memory pressure: On systems with less than 4 GB of RAM, the memory manager might lock the same page twice under extreme load (e.g., when running multiple virtual machines). The fix here is simpler: close heavy apps or add more RAM. No driver involved—just Windows being Windows.

Prevention going forward

  1. Keep graphics drivers updated—NVIDIA and AMD both patch page-lock bugs regularly. Check monthly.
  2. Audit third-party drivers with driverquery /v in an admin prompt. Look for any driver with a date older than two years. That's a candidate for replacement.
  3. Disable antimalware early-launch drivers from vendors like McAfee or Symantec if you don't need them. They're notorious for locking memory at boot.
  4. Set ClearPageLockedOnBoot to 0 after you're stable—it's a debug tool, not a permanent setting. Leaving it at 1 can mask future driver bugs.

That's it. You won't see ERROR_WAS_LOCKED much once you've cleaned up the driver responsible. If it comes back, your culprit's still running. Use the poolmon steps again—it's the fastest way to catch the bastard.

Was this solution helpful?