0XC000036F

Fix 0XC000036F: Printer driver not a valid DLL on Windows 10/11

Hardware – Printers Intermediate 👁 8 views 📅 Jun 22, 2026

This error pops up when installing a printer driver that's missing a required DLL or has a corrupted file. The fix is to force-install the driver from an inf file.

You're setting up a printer on Windows 10 or 11 – maybe an older Brother laser or a Canon all-in-one. You run the installer from the manufacturer's website, it copies files, then bam: STATUS_INVALID_IMPORT_OF_NON_DLL (0XC000036F). The driver fails to load, and the printer shows up as 'Unknown' or doesn't appear at all.

What's actually happening here is the driver package contains a DLL that Windows thinks isn't a proper DLL. Usually, the installer extracts files to a temp folder, then tries to load a 32-bit DLL into a 64-bit process, or the DLL has a bad header – maybe it's truncated or corrupted. The error code says 'invalid import of non-DLL', which means the executable loader found something in the DLL's import table that doesn't look like a valid DLL reference.

Why does this happen?

Three common triggers:

  • Mixed architecture: The installer is 32-bit but the driver DLL is 64-bit, or vice versa. Windows won't load a mismatched binary.
  • Corrupted download: The driver file got mangled during download – happens often with older printer models hosted on outdated servers.
  • Antivirus interference: Some AV tools quarantine parts of the driver during extraction, leaving the DLL incomplete.

The real fix is to bypass the broken installer and manually install the driver using the .inf file. This tells Windows exactly which files to use, avoiding the installer's messy extraction logic.

Fix: Install the driver from the .inf file

  1. Download the driver from the printer manufacturer's site again. Use a different browser or disable any download manager. Save it to C:\Drivers\PrinterName.
  2. Extract the driver package if it's a .exe or .zip. For .exe files, run it once – it'll usually create a folder like C:\ProgramData\Brother\Drivers or C:\Users\YourName\AppData\Local\Temp\7zS****. Find that folder. If it just errors out, use 7-Zip to extract the .exe directly (right-click → Open archive).
  3. Locate the .inf file inside the extracted folder. Look for files named something like setup.inf, prnbrcl1.inf, or oemsetup.inf. If you see multiple, pick the one that matches your printer model.
  4. Open Device Manager (right-click Start → Device Manager). Find your printer under 'Print queues' or 'Other devices' – it'll have a yellow exclamation mark. Right-click it → 'Update driver'.
  5. Choose 'Browse my computer for drivers' → 'Let me pick from a list of available drivers on my computer' → 'Have Disk' → 'Browse' → select the .inf file you found. Click OK.
  6. If Windows complains about 'the driver is not intended for this platform', you've picked the wrong .inf. Go back and try a different one – maybe one inside a subfolder named Win10 or x64.

The reason step 3 works is the .inf file contains a list of all required DLLs and their correct paths. Windows loads them directly from that folder, not from a temp location. The old installer was probably loading a 32-bit DLL from a 64-bit context or the DLL had stale imports.

If it still fails

Check these:

  • Print spooler service: Open Services.msc, find 'Print Spooler'. Right-click → Stop. Delete everything in C:\Windows\System32\spool\DRIVERS\x64\3 (or W32x86\3 for 32-bit). Restart the spooler. Try the inf install again.
  • DLL registration error: Open Command Prompt as admin, run sfc /scannow to fix system files. Then DISM /Online /Cleanup-Image /RestoreHealth. This repairs the DLL loader itself.
  • Different driver version: Some printers have 'universal' drivers that are huge DLL blobs. Try the 'basic' driver from the manufacturer – it's smaller and less likely to be corrupt.
  • Use a 32-bit VM: If the printer is ancient (Windows 7 era) and the driver is 32-bit only, you might need to install it on a 32-bit Windows 10 VM. The error won't go away on 64-bit.
One time I saw this error on a Brother HL-2230. The installer was trying to load a 64-bit DLL from a 32-bit stub. The inf file inside the extracted folder had two subfolders – 32-bit and 64-bit. Picking the right one fixed it instantly.

Skip the manufacturer's 'auto-detect' installer. It's usually the culprit. Manual inf install is the only reliable path for this error.

Was this solution helpful?