STATUS_MARSHALL_OVERFLOW (0xC0000231) Fix: Buffer Overflow in Marshaling
0xC0000231 means the kernel/user marshaling buffer overflowed. Usually caused by buggy drivers or corrupt system files. Here's how to fix it.
What's Actually Happening Here
STATUS_MARSHALL_OVERFLOW (0xC0000231) is a Windows stop code that fires when the buffer used for marshaling data between user mode and kernel mode overflows. Marshaling is how Windows packages up data — function arguments, return values, objects — to cross the boundary between your apps (user mode) and the core OS (kernel mode). When that buffer overflows, the system panics and bluescreens. It's almost never a hardware problem. It's almost always a driver that's sending too much data or corrupted system files that broke the marshaling logic.
You'll see this most often after a Windows update, a driver update gone wrong, or installing software that hooks deep into the system (antivirus, VPNs, game overlays). The fix path is linear — start with the 30-second check, escalate if it doesn't work.
Fix 1: The 30-Second Clean Boot Test
Before you run any tools, rule out third-party interference. A clean boot starts Windows with only Microsoft services and drivers. If the error goes away, you know a third-party driver or service is the culprit.
- Press Win + R, type
msconfig, hit Enter. - Go to the Services tab. Check Hide all Microsoft services at the bottom. Then click Disable all.
- Go to the Startup tab. Click Open Task Manager. Disable every startup item.
- Click OK, restart your PC.
If the bluescreen doesn't reappear, you've isolated it to a third-party driver or service. Now you need to find which one. Re-enable services in small batches using msconfig, restarting each time, until the error comes back. Then disable that specific service or update its driver. The usual suspects: VPN clients, antivirus suites, GPU tweaking tools (MSI Afterburner, EVGA Precision), and game overlays (Discord, RivaTuner).
Fix 2: The 5-Minute System File Check
If the clean boot didn't help — or you couldn't be bothered and want a deeper fix — run SFC and DISM. These check for corrupted system files that can break marshaling buffers.
- Open Command Prompt as administrator (right-click Start, pick Command Prompt (Admin) or Windows Terminal (Admin)).
- Type
sfc /scannowand press Enter. Let it finish. It'll replace any corrupt files with cached copies. - After SFC completes, run
DISM /Online /Cleanup-Image /RestoreHealth. This fixes the image that SFC pulls from. Takes a few minutes. - Restart your PC.
What's happening here: SFC checks every protected system file against a known good version. DISM repairs the component store itself. If either finds corruption, it's often the root cause of the marshaling overflow. This fixes about 40% of 0xC0000231 cases I've seen.
Fix 3: The 15-Minute Driver Hunt
If the above didn't work, you've got a driver that's misbehaving. The marshaling overflow is almost certainly triggered by a driver sending oversized or malformed data to the kernel. You need to find and update it.
Step 1: Check the Dump File
Windows creates a memory dump when it bluescreens. Use that to identify the driver.
- Press Win + R, type
%SystemRoot%\Minidump, hit Enter. - Look for .dmp files. If you see one, download BlueScreenView (free, from NirSoft — it's safe).
- Open the dump file. Look for the line that says Caused by Driver. That's your culprit.
If you don't have a dump file, enable them: Right-click This PC > Properties > Advanced system settings > Startup and Recovery > Settings. Set Write debugging information to Small memory dump (256 KB).
Step 2: Update or Roll Back That Driver
Once you have the driver name (e.g., nvlddmkm.sys for NVIDIA, dxgkrnl.sys for DirectX, or something obscure like AsIO.sys from ASUS utilities):
- If it's a GPU driver — download the latest from the manufacturer's site (NVIDIA, AMD, Intel). Use DDU (Display Driver Uninstaller) in safe mode first to fully remove the old driver. Don't use Windows Update for GPU drivers; it often lags behind.
- If it's a third-party driver (like a motherboard utility, audio driver, or peripheral software) — check the manufacturer's support page for a newer version. If a recent update caused the issue, roll back: go to Device Manager, find the device, Properties > Driver > Roll Back Driver.
- If it's a Microsoft system driver (like
dxgkrnl.sys) — run Windows Update fully. That usually patches known issues.
Step 3: When All Else Fails — Reset or Repair Install
If you've tried clean boot, SFC/DISM, and driver hunting and the error still shows up, your Windows installation might have deeper corruption that those tools can't fix. Your last option before a full reinstall:
- Open Settings > Update & Security > Recovery > Reset this PC.
- Choose Keep my files. This reinstalls Windows but keeps your personal data. It'll remove all apps and drivers, so have your critical software installers handy.
This is nuclear but effective. The marshaling buffer overflow at this point is likely caused by a system component that SFC can't repair. A reset gives you a clean slate with known good files.
Why This Error Happens in Real Life
I've seen 0xC0000231 most often after a Windows feature update (like the 22H2 or 23H2 upgrades) that left a stale driver behind. Specifically, I've seen it from old rt640x64.sys (Realtek network driver) and AsIO.sys (ASUS motherboard monitoring). The driver tries to write data into the marshaling buffer that's bigger than the buffer's allocated size, and boom — blue screen. The fix is almost always updating that specific driver or removing the software that installed it.
One more thing: if you're running a Windows Insider build, this error is more common. Those builds have newer code paths that can trigger bugs in older drivers. Roll back to a stable release if you can.
Was this solution helpful?