You're building a server or a diskless workstation. You set it to boot from the network (PXE). It starts fine, grabs an IP, then you see: 0XC00000C1 – The network command limit has been reached. The boot hangs. This usually happens on older servers (like a Dell PowerEdge R720 or an HP ProLiant DL380 G7) where the BIOS can't handle the back-and-forth with the DHCP server. The real trigger? The BIOS sends too many DHCP discover requests in a short window, and the NIC firmware hits its internal command queue limit. The error code is STATUS_TOO_MANY_COMMANDS – it's the BIOS's way of saying "I'm overwhelmed."
Root cause: The BIOS is flooding itself
Here's what's happening. When you PXE boot, the BIOS's network stack sends out DHCP discover packets to find a boot server. Normally, it sends a few, gets a response, and moves on. But with certain NICs (especially Broadcom BCM57xx and Intel PRO/1000 adapters), the BIOS firmware has a tiny command buffer. If the DHCP server is slow to respond (or the network has latency), the BIOS piles up pending commands. Once that buffer fills – boom, the 0XC00000C1 error. I've seen this most often on systems with the DHCP option 67 (boot file name) set to a very long path – the extra data makes the response take longer, and the BIOS gets impatient.
Step-by-step fix
Skip the "just restart" advice – that won't fix it. The real fix is to slow down the BIOS's network boot or clear the command queue. Try these in order.
Step 1: Power cycle and clear NVRAM
- Shut down the machine completely. Unplug the power cord – not just turn it off. Wait 30 seconds.
- Plug it back in and boot. Immediately press F2 (Dell) or F9 (HP) or the key for BIOS setup. You should see the BIOS menu appear within 10 seconds.
- Go to System Configuration → BIOS/Platform Configuration (RBSU) → Network Options (on HP) or Integrated Devices → Network Settings (on Dell).
- Look for an option called PXE Base Code or Network Stack. Set it to Enabled – but check the sub-options.
- Find PXE Boot Retry Count – if it exists, set it to 0 (no retries) or 1. Do not set it to unlimited – that causes the flood.
- Find DHCP Packet Size or DHCP Timeout – if available, set it to 5000 ms (5 seconds). This gives the server more time without piling up commands.
- Press F10 to save and exit. After saving, you should see the system reboot. Watch for the PXE boot – it should now send a single request, wait, then proceed.
Step 2: Update NIC firmware (if Step 1 fails)
If the BIOS settings don't help, the NIC firmware is old. Broadcom and Intel both fixed this issue in later revisions.
- Boot into the OS (or use a live USB Linux). Download the latest firmware from the hardware vendor's support site. For a Dell PowerEdge, that's Dell SupportAssist or the Dell PowerEdge Update Package. For HP, use HP SPP (Service Pack for ProLiant).
- Run the firmware update tool. After flashing, shut down and do a cold boot (unplug power again for 30 seconds).
- Enter BIOS setup and check the NIC's firmware version – it should be newer than the one you had. For example, Broadcom BCM5720 firmware 7.14.x or later has the fix.
- Try PXE boot again. If you still get the error, move to Step 3.
Step 3: Tweak DHCP server options (for admins with access)
If you control the DHCP server, you can fix this from there. The goal is to make the server respond faster so the BIOS doesn't queue commands.
- On your DHCP server (Windows Server, Linux with ISC DHCP, or your router), go to the DHCP scope options.
- Set Option 67 (Bootfile Name) to a short path. Instead of
\server\share\boot\winpe.wim, useboot.wimand use Option 66 (TFTP server) for the server address. - If your DHCP server allows it, set a minimum lease time of 60 seconds – this prevents premature renewals that can also flood the NIC.
- On some systems, disable Option 43 (Vendor-Specific Information) – it adds extra processing time. After saving, restart the DHCP service or reboot the router. Then try the PXE boot again. You should see a quicker response.
If it still fails
You've done all three steps and the error persists. Here's what to check:
- Bad NIC hardware. Swap the network card with a known-good one. I've seen a flaky Broadcom chip cause this even with correct settings.
- Switch ports. Some managed switches with Spanning Tree Protocol (STP) can delay the first DHCP response. Plug the server into an access port (not a trunk) or set the port to portfast (Cisco) / edge port (HP/Aruba). This skips the STP delay and gives the BIOS a faster reply.
- BIOS version too old. Some older BIOS releases (like Dell PowerEdge R710 BIOS 6.6.0) have known bugs with PXE. Update the system BIOS itself, not just the NIC firmware. This is a separate download from the hardware vendor.
- Use UEFI instead of Legacy BIOS. If your hardware supports it, switch from Legacy PXE to UEFI network boot. UEFI handles the command queue differently. Change this in BIOS under Boot Mode to UEFI. After changing, the boot menu will look different – you'll see UEFI: IPv4 Intel(R) PRO/1000 instead of Network. Choose that.
The 0XC00000C1 error is annoying, but it's fixable. The command buffer limit is a hardware limitation, not a software bug. Once you slow things down or update the firmware, you're golden. If you're still stuck after all this, your NIC might be toast – replace it with a newer Intel X520 or Broadcom 57416, and you'll never see this error again.