STATUS_NOT_COMMITTED (0xC000002D) — Memory Not Committed
This error means a program tried to change memory attributes on pages that haven't been committed yet. The fix is usually to update or reinstall the offending driver or app.
Quick answer
Run sfc /scannow and dism /online /cleanup-image /restorehealth from an admin command prompt, then update your graphics and chipset drivers. If that doesn't work, check which app caused the crash in Event Viewer and reinstall it.
What's actually happening here
This error — STATUS_NOT_COMMITTED (0xC000002D) — is the NT kernel telling you a program tried to do something it shouldn't: change memory protection flags on a page that was reserved but never committed. In Windows memory management, you can reserve a range of virtual addresses without actually backing them with physical RAM or page file space. That's the MEM_RESERVE stage. Only after you call VirtualAlloc with MEM_COMMIT does the memory actually exist. Some driver or application here jumped the gun — it reserved space, then tried to mark it read-only or executable without first committing it.
I've seen this most often with buggy graphics drivers (especially on laptops with switchable GPUs), custom kernel-mode antivirus filters, and old game anti-cheat software that tries to manipulate page protections. The crash usually shows up as a bluescreen or a silent app termination, with the error code buried in Event Viewer under Windows Logs > Application or System.
Fix steps
-
Update your graphics driver
This is the most common trigger. Go to your GPU vendor's site — NVIDIA, AMD, or Intel — and download the latest stable driver. Don't rely on Windows Update here; it often lags behind. For laptops with switchable graphics, update both the integrated Intel/AMD and the discrete GPU driver. Reboot after each install. -
Run the built-in system file checker
Open Command Prompt as Administrator and run:
sfc /scannow
Let it finish. If it finds corrupt files and fixes them, reboot. If it says it couldn't fix something, run:
dism /online /cleanup-image /restorehealth
Then re-runsfc /scannow. This chain fixes underlying component store corruption that can lead to memory misbehavior. Check Event Viewer for the culprit
Press Win + X > Event Viewer. Go to Windows Logs > System. Filter by the date/time of the crash. Look for events with ID 1001 (BugCheck) or sourceMicrosoft-Windows-WER-SystemErrorReporting. The error text will often include the module name — something likenvlddmkm.sysfor NVIDIA ordxgkrnl.sysfor DirectX. That tells you exactly which driver to update or roll back.Reinstall the offending application
If Event Viewer points to a specific .exe — say,gameanticheat.sysorsomething.exe— uninstall that program completely, reboot, then download the latest version from the official source. Sometimes old installers bundle buggy memory management code that newer builds have patched.Run Memory Diagnostics
Faulty physical RAM can cause the memory manager to misreport commit states. Press Win + R, typemdsched.exe, and hit Enter. Choose to restart and check. Let it run overnight if needed — it's thorough. If errors come up, you need to replace that RAM stick.
Alternative fixes if the main ones fail
- Disable Memory Integrity in Windows Security: Go to Windows Security > Device Security > Core Isolation > Memory Integrity and turn it off. Some legacy drivers can't handle the hypervisor-based protection and trigger this error when they try to change page protections. Only do this as a test — turn it back on after you find the real driver.
- Uninstall third-party antivirus: Programs like McAfee, Norton, or even some advanced configurations of Defender can intercept memory operations. Use their official removal tool, then reboot. If the error stops, switch to Windows Defender alone — it's good enough for most users.
- Boot into Safe Mode with Networking: If the crash happens at startup, boot into Safe Mode. If it doesn't crash there, you know a third-party driver is the problem. Use Safe Mode to update or uninstall suspect drivers.
Prevention tip
The reason step 3 works is it isolates the specific driver or app that's doing the illegal memory operation. Don't just blindly update all drivers — that wastes time and can introduce new bugs. Always check Event Viewer first. Once you've identified the culprit, set Windows Update to delay driver updates (via Group Policy or the Settings app) so you don't get a broken update pushed automatically. And if you write your own software: always call VirtualAlloc with MEM_COMMIT before calling VirtualProtect on that region. Windows doesn't forgive that order swap.
Was this solution helpful?