Seeing 0xC000022C is confusing, I know—it looks like a crash, but it’s actually an internal NT status code the kernel uses to tell itself “convert this allocation to a large page.” The real problem is usually a driver or system component that can’t handle large page allocations, or a memory pool that’s fragmented. Let’s fix it.
The Fix: Adjust Memory Allocation Limits
What’s actually happening here is the kernel’s memory manager tries to allocate a large page (2MB or 1GB on modern systems) for a process or driver, but something blocks it—maybe a pool quota hit, or a driver that hasn’t registered for large pages. The 0xC000022C status code is the kernel’s way of saying “I tried to convert, but it didn’t work.”
The fix that works most often is to increase the system’s memory pool limit so the kernel has room to retry. Here’s how:
- Press Win + R, type
regedit, and hit Enter. - Go to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. - Look for a DWORD named
LargePageMinimum. If it doesn’t exist, create it (32-bit DWORD, even on 64-bit systems). - Set
LargePageMinimumto0(zero). This tells the kernel to use a smaller default page size (4KB) for all allocations, bypassing the large-page conversion entirely. - Restart your system.
That’s it. The reason step 4 works is that when LargePageMinimum is zero, the kernel never attempts to convert an allocation to a large page. The status code 0xC000022C never fires because the conversion path is disabled. This doesn’t break anything—Windows falls back to standard 4KB pages, which is what 99% of applications use anyway. Large pages are a performance optimization for memory-heavy workloads (like databases or big data apps), not a requirement for normal use.
If you’re still seeing 0xC000022C after this change, the issue is more specific.
Why It Happens: The Nitty-Gritty
The NT kernel uses status codes internally—they’re not meant for end users. 0xC000022C translates to STATUS_CONVERT_TO_LARGE. It’s returned by the memory manager when a component requests a large page allocation but the request fails—typically because:
- Fragmented non-paged pool: Large pages need physically contiguous memory. After hours of driver allocations and deallocations, the pool gets fragmented. The kernel can’t find a contiguous 2MB block, so it returns this code.
- Driver misbehavior: Some drivers (especially old video drivers or storage drivers) call
MmAllocatePagesForMdlor similar APIs expecting small pages, but newer Windows versions try to serve large pages. The driver doesn’t handle the conversion status code, leading to a crash or hang. - Memory pressure: If you’re low on RAM (say, running with 4GB on Windows 10 or 11), the kernel conservatively uses small pages. But a driver might force a large-page request, hitting this status.
In short: it’s a kernel-level signal, not a user error. The registry tweak above sidesteps it cleanly.
Less Common Variations
Sometimes the registry fix alone isn’t enough. Here are other scenarios and what to do:
Variation 1: Crashes in NVidia or AMD Drivers
If 0xC000022C appears in a blue screen while gaming or running GPU-intensive apps, the video driver is the culprit. Open Device Manager, expand Display adapters, right-click your GPU, select Properties, go to the Driver tab, and click Roll Back Driver if you recently updated. Otherwise, download the latest driver from the manufacturer’s site and do a clean install (check “Perform clean installation” in the NVidia installer). The reason: GPU drivers are the most common users of large pages for texture memory. A buggy driver triggers the conversion failure.
Variation 2: Errors in Windows Event Log (Event ID 50 or 55)
You might not crash, but see warnings like “The system failed to allocate a large page” in Event Viewer under Windows Logs > System. This usually means a service (like SQL Server or a Hyper-V VM) is configured to use large pages but can’t get them. The fix: disable large pages for that service. For SQL Server, set use large pages to false in the configuration; for Hyper-V, go to VM settings and uncheck “Use large pages” under Memory.
Variation 3: BSOD with 0xC000022C on Boot
If the error happens before Windows loads, it’s a boot driver or firmware issue. Boot into Safe Mode (by pressing F8 or Shift+Restart). If Safe Mode works, disable all non-Microsoft services via msconfig. Then enable them one by one to find the culprit. Common offenders: third-party antivirus drivers, disk encryption tools (like VeraCrypt), or older storage controllers. Uninstall or update the offending driver.
Prevention
You can stop 0xC000022C from coming back with a few habits:
- Keep drivers updated—but not bleeding edge. Stick to “WHQL” certified versions from the manufacturer, not beta ones. Beta drivers are where you see this status code most often.
- Check your memory quota. If you’re running multiple memory-intensive apps (Docker, Chrome tabs, SQL Server), monitor usage with Task Manager. When usage hits 90%, the kernel starts rejecting large-page allocations. Close what you don’t need.
- Don’t set
LargePageMinimumto anything other than 0 or the default (which is usually around 2MB on modern systems). Some online guides tell you to set it to a high value like 2000000. Don’t. That makes the kernel try to allocate huge pages constantly—wasting memory and triggering this exact status code. - Run a memory test. Use Windows Memory Diagnostic (search it in Start). Bad RAM can fragment the pool and cause allocation failures. If it finds errors, replace the faulty stick.
One last opinionated point: if you’re not running a database server or a rendering farm, large pages don’t help. Disable them entirely with the registry tweak above. It’s the cleanest fix. The Windows kernel is smart enough to manage without them, and you’ll never see 0xC000022C again.