STATUS_NDIS_BUFFER_TOO_SHORT (0xC0230016) Fix
This error means a network buffer is too small for the data being sent. Usually caused by a bad driver or a misconfigured network adapter. Here's how to fix it.
1. Corrupt or outdated network adapter driver
This is the most common cause. What's happening: the NDIS.sys driver (which handles network data) gets a request to send data, but the buffer it asks for is smaller than the data itself. This usually happens after a Windows Update or a bad driver install. I've seen this a lot on Realtek and Intel NICs, especially after upgrading from Windows 10 to 11.
Fix: Download the latest driver directly from your motherboard or NIC manufacturer. Don't rely on Windows Update — it often pushes generic drivers that are too old or buggy. For a Realtek RTL8111, go to realtek.com. For Intel I219-V, go to intel.com. Uninstall the current driver in Device Manager (check "Delete the driver software for this device"), then reboot and install the new one.
# Check current driver version in PowerShell:
Get-NetAdapter -Name "Ethernet" | Select Name, DriverVersion, DriverDate
If the driver version is from 2020 or older, that's your problem. Update it.
2. Network adapter buffer size too low
Sometimes the driver is fine, but the buffer size setting in the registry or adapter properties is too small. This is common after a Hyper-V or WSL (Windows Subsystem for Linux) installation, which creates virtual switches that mess with buffer sizes. The real fix isn't guessing — you need to increase the buffer length via registry.
Fix: Open Registry Editor (regedit) and go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDIS\Parameters
Create a new DWORD (32-bit) called ReceiveBufferSize and set it to 16384 (decimal). Create another called TransmitBufferSize and set it to 16384. Reboot. This tells NDIS to allocate bigger buffers. If the error persists, try 32768. I've seen this fix the error on Dell Optiplex machines with Broadcom NICs.
# Or do it in a single command (Admin PowerShell):
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NDIS\Parameters" -Name "ReceiveBufferSize" -Value 16384 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NDIS\Parameters" -Name "TransmitBufferSize" -Value 16384 -PropertyType DWord -Force
Restart-Computer
3. Virtual switch or Hyper-V causing buffer mismatch
If you're using Hyper-V, Docker, WSL2, or any virtual machine, the virtual switch can force the real NIC to use a smaller buffer. The error pops up when the physical NIC can't handle the virtual traffic. What's really going on: the virtual switch asks for a buffer of X bytes, but the NIC expects Y bytes. X is smaller than Y, so you get 0xC0230016. This is common on Windows 11 with WSL2 enabled.
Fix: Disable the Hyper-V virtual switch if you don't need it. Go to Control Panel > Programs > Turn Windows features on or off, uncheck Hyper-V and Windows Subsystem for Linux, reboot. If you need WSL2, use version 1 instead (it doesn't use a virtual switch).
# Set WSL to version 1 (no virtual switch):
wsl --set-default-version 1
If you need the virtual switch, you can also try binding the virtual switch to a different physical NIC. This is rare but happens when the NIC has a hardware limit (e.g., some Realtek chips can't handle virtual switch buffers).
| Cause | Fix | Difficulty |
|---|---|---|
| Corrupt NIC driver | Download and install latest driver from manufacturer | Beginner |
| Low buffer size in registry | Set ReceiveBufferSize and TransmitBufferSize to 16384 | Intermediate |
| Virtual switch buffer mismatch | Disable Hyper-V or switch WSL to version 1 | Intermediate |
One last thing: if none of these work, check your antivirus. Some AV programs hook into NDIS and mess with buffer sizes. Temporarily disable it to test. I've seen this with Bitdefender on Windows 11. Unlikely, but possible.
Was this solution helpful?