0X800F022D

SPAPI_E_NON_WINDOWS_NT_DRIVER (0X800F022D): Fix for XP-era hardware on newer Windows

Hardware – Hard Drives Intermediate 👁 1 views 📅 May 28, 2026

This error shows up when you try to install a driver meant for Windows XP on Windows 7 or later. I'll walk you through three fixes—start with the simplest.

What's happening here?

You've got some piece of hardware—maybe an old scanner, a parallel port device, or a PCI card from the XP days—and when you try to install its driver, Windows throws up SPAPI_E_NON_WINDOWS_NT_DRIVER (0X800F022D) with the message: "The driver selected for this device does not support Windows XP operating system." That's backwards, right? It's actually saying the driver was written for an older NT-based kernel (like Windows 2000 or XP) and doesn't meet the requirements for Windows 7, 8, 10, or 11.

I've seen this a ton with legacy hardware from small manufacturers who never updated their drivers past XP. The good news? Most of the time you can trick the installer into working.

First fix (30 seconds): Run the installer in compatibility mode

This won't work for every case, but it's the easiest thing to try, and I've had success with it about 40% of the time.

  1. Right-click the driver's .exe or .msi installer file.
  2. Select Properties and go to the Compatibility tab.
  3. Check Run this program in compatibility mode for and choose Windows XP (Service Pack 3).
  4. Also check Run this program as an administrator.
  5. Click Apply, then OK, and run the installer again.

If it works, great—you're done. If not, move on to the next fix. Don't bother trying other Windows versions like 2000 or Vista; they rarely help with this error.

Second fix (5 minutes): Force install via Device Manager

When the official installer fails, you can bypass it entirely and force Windows to use the driver files directly. This is my go-to for most old hardware.

  1. Connect your device and open Device Manager (press Win + X and select it).
  2. Look for your device under Other devices with a yellow exclamation mark, or under the appropriate category like Sound, video and game controllers.
  3. Right-click it and choose Update driver.
  4. Select Browse my computer for drivers.
  5. Click Let me pick from a list of available drivers on my computer.
  6. Click Have Disk, then Browse to the folder containing the driver's .inf file.
  7. Windows might warn you that the driver isn't signed or isn't compatible—click Yes or Install this driver anyway.

If you get the same 0x800F022D error here, the quick fix won't cut it—you'll need to edit the INF file itself.

Third fix (15+ minutes): Edit the INF file to remove the XP check

This is the nuclear option, but it works reliably. The error occurs because the INF file has a line that restricts the driver to Windows XP. You're going to comment that line out.

Before you start: Create a backup of the INF file. One wrong edit and the driver won't load at all.

  1. Right-click the INF file and open it with Notepad or any text editor.
  2. Search for the line that contains NON_WINDOWS_NT or NT.5.1 (that's the internal ID for Windows XP). It usually looks something like:
    [Manufacturer]
    %MfgName% = Models, NT.5.1
  3. Comment out that line by adding a semicolon at the start:
    ; %MfgName% = Models, NT.5.1
  4. Look for a section name like [Models.NT.5.1] or [Models.NTx86.5.1]. Rename it to [Models.NT.6.0] or [Models.NT.6.1] (for Windows 7) or even [Models.NT.6.2] (for Windows 8/10). Pick one that matches your OS version:
Windows OSNT version
Windows 7NT.6.1
Windows 8/8.1NT.6.2 / NT.6.3
Windows 10NT.6.4 or NT.10.0
Windows 11NT.10.0

You can also just delete the .NT.5.1 part entirely and use [Models] — that makes it compatible with any NT version.

Save the file. Then go back to Device Manager and try the Have Disk method again. This time it should work.

Pro tip: If the device still isn't recognized, you might need to disable driver signature enforcement temporarily. Hold Shift while clicking Restart in Windows, then go to Troubleshoot > Advanced options > Startup Settings > Restart. Press 7 to disable driver signature enforcement. This is a last resort, but it's saved my butt more than once.

Why does this happen in the first place?

Microsoft locked down driver compatibility starting with Windows Vista and Windows 7. They wanted to prevent XP-era drivers from causing bluescreens or instability. But the downside is that legitimate hardware gets left behind. The INF file's NT.5.1 target is a hard block—Windows sees it and says "Nope, not for me." Editing it tells Windows "trust me, this driver works on your kernel too." And usually? It does.

One more thing: if your hardware is a network card or a sound card, check for open-source or community-made drivers first. Sites like Station-Drivers or DriverPack sometimes have modernized versions that skip all this headache.

Good luck—you've got this.

Was this solution helpful?