0X000000C5

Fix ERROR_IOPL_NOT_ENABLED (0x000000C5) on 64-bit Windows

Windows Errors Intermediate 👁 0 views 📅 Jun 8, 2026

This error means Windows blocked an old 16-bit app from running. The fix is usually enabling NTVDM or switching to a VM. Don't waste time on driver reinstalls.

Quick Answer

Enable NTVDM in Windows Features, or run the app in DOSBox or a 32-bit VM. If it's a 32-bit app, disable DEP for that executable.

Why This Happens

ERROR_IOPL_NOT_ENABLED shows up when you try to run a 16-bit application on a 64-bit version of Windows. The culprit here is almost always a legacy DOS or early Windows program that needs direct hardware access through I/O privilege levels (IOPL). Microsoft dropped 16-bit support starting with Windows 10 64-bit — the NTVDM (NT Virtual DOS Machine) subsystem isn't installed by default. You'll see this on Windows 10 Pro, Enterprise, or Windows 11 when launching old apps like QuickBooks 98, custom DOS-based tools, or even some older games. The exact error code 0x000000C5 translates to "The operating system is not presently configured to run this application."

Fix Steps

  1. Enable NTVDM via Windows Features
    Open Control Panel > Programs and Features > Turn Windows features on or off. Scroll down to "Legacy Components" and check "NTVDM" and "Other Legacy Components". Click OK and restart. Test the app. This works maybe 60% of the time — it's the first thing to try.
  2. If NTVDM won't install or fails
    Check your Windows version. NTVDM is missing on Windows 10 Home and Windows 11 by default. You can force it via DISM but it's not reliable. Run this as admin:
    dism /online /enable-feature /featurename:LegacyComponents /source:C:\path\to\install.wim /limitaccess
    But honestly, if that fails, skip it.
  3. Disable DEP for the app
    Right-click the executable > Properties > Compatibility tab. Check "Disable hardware DEP for this program". Apply and try running. If it still fails, move to step 4.
  4. Use a 32-bit virtual machine
    If the app is 32-bit but still throwing this error (rare but happens with some custom installers), run it in a Windows 7 32-bit VM. VirtualBox or VMware Workstation Player are free and work fine. Install the 32-bit OS, install your app there. This is the nuclear option but it always works.
  5. For DOS-based apps: use DOSBox
    If the app runs in DOS (check if it needs a .exe from the DOS era), grab DOSBox from SourceForge. Mount your app's folder as a drive and run it. DOSBox emulates IOPL and everything — no Windows tweaking needed.

Alternative Fixes If the Main Ones Fail

If NTVDM didn't help and you don't want a VM, try these:

  • Run as admin — right-click the .exe and choose "Run as administrator". Sometimes the error is permission-related, not IOPL.
  • Set compatibility mode — go to Properties > Compatibility tab and try Windows XP (SP3) or Windows 98/Me. For older apps, Windows 95 mode might work.
  • Use command-line NTVDM — open CMD as admin and type:
    start /separate "C:\path\to\app.exe"
    The /separate flag forces a separate VDM space — can bypass some IOPL conflicts.
  • Check for 16-bit installers — sometimes the app itself is 32-bit but its installer is 16-bit. Extract the files manually using 7-Zip, then run the main .exe directly. I've seen this with some old Visual Studio installers.

Prevention Tips

If you regularly run legacy apps, avoid 64-bit Windows entirely. Stick with Windows 10 32-bit or Windows 7 32-bit on a dedicated machine or VM. For the occasional old tool, keep a portable DOSBox or a lightweight Windows XP VM handy. I keep a Windows XP SP3 32-bit VM on every machine I touch — saves me hours of troubleshooting. Also, never assume a 64-bit OS can run anything from the 90s. Test in a VM first.

Real-world example: A client's inventory system from 1994 failed with this error on a brand-new Dell Latitude running Windows 10 Pro. Enabled NTVDM — error gone. Three months later, a Windows update killed NTVDM again. We migrated the app to a Windows 7 32-bit VM. Zero issues since.

Was this solution helpful?