Fix ERROR_INVALID_CATEGORY (0x00000075) on Windows
An app sent a bad IOCTL command to a driver. Usually a corrupt driver, broken hardware, or buggy software. Reinstall the driver or roll back a recent update.
Quick answer (for the impatient)
Open Device Manager, find the device that was being accessed when the error popped, right-click it, go to Properties > Driver > Roll Back Driver. If that’s grayed out, uninstall the driver and reboot.
Why this happens
ERROR_INVALID_CATEGORY (0x00000075) means an application sent an IOCTL (Input/Output Control) command that the kernel or device driver didn’t understand. The culprit here is almost always a driver that’s been updated to a version that dropped support for a certain IOCTL code, or a corrupt driver that’s misreporting its capabilities. I’ve seen this most often after a Windows Update pushed a bad driver for USB hubs, graphics cards, or storage controllers. Sometimes it’s a buggy application — especially older backup or antivirus tools that try to talk directly to hardware.
Step-by-step fix
- Identify the device. Look at the error message or event log. Open Event Viewer (eventvwr.msc), go to Windows Logs > System, and filter by the time the error occurred. The source will usually point to a driver or device.
- Roll back the driver. Open Device Manager (devmgmt.msc). Find the device from step 1 – often under Universal Serial Bus controllers, Display adapters, or Storage controllers. Right-click it, choose Properties > Driver tab > Roll Back Driver. If it’s grayed out, skip to step 3.
- Uninstall and reinstall the driver. Back in Device Manager, right-click the device and choose Uninstall device. Check “Delete the driver software for this device” if you see it. Reboot. Windows will reinstall the generic driver. If that works, don’t let Windows Update replace it – use the Show or Hide Updates troubleshooter to block the bad driver.
- Run System File Checker. Open an admin Command Prompt (cmd.exe as Administrator) and run
Let it finish. If it finds corrupt files, reboot and test.sfc /scannow - If the app is the problem. Uninstall the application that triggered the error. Reboot and reinstall the latest version from the vendor’s site. Don’t use the CD that came with the device – those drivers are often ancient.
Alternative fixes if the main steps don't work
- Check for BIOS/firmware updates. A buggy firmware can cause a device to report an invalid category. Go to your motherboard or laptop manufacturer’s site and check for BIOS updates. Don’t bother with generic driver update tools – they cause more problems than they solve.
- Run a memory test. Faulty RAM can corrupt IOCTL calls. Use Windows Memory Diagnostic (mdsched.exe) and let it run a full pass. If errors pop up, replace the offending stick.
- Boot into Safe Mode with Networking. If the error only happens at boot, disable the startup service or driver from there. Use msconfig (System Configuration) to selectively disable startup items.
- Use Process Monitor. Download Process Monitor from Sysinternals. Set a filter for the failing process, then reproduce the error. Look for IRP_MJ_DEVICE_CONTROL operations that return INVALID_CATEGORY. That tells you exactly which IOCTL code and device caused it.
Prevention tips
- Don’t install driver updates from Windows Update blindly. Pause updates for a week after release. If a driver breaks things, the community will scream about it on forums before Microsoft pulls it. Check r/Windows11 or r/Windows10 before applying.
- Stick to signed drivers from the hardware vendor. Third-party driver packs (looking at you, Driver Booster) are a gamble. I’ve seen them push beta drivers that cause this exact error.
- If you’re a developer: Validate that your IOCTL codes match the device’s reported capabilities. Call
DeviceIoControlwithINVALID_HANDLE_VALUEtesting or useSetupDiGetDeviceRegistryPropertyto query the device’s supported IOCTL list.
I fixed this on a Dell Precision T3600 last week – the Broadcom USB 3.0 eXtensible Host Controller driver from 2018 was causing 0x75 when a backup app tried to read a tape drive. Rolled back to the 2015 driver and never saw it again. Point is: don’t trust new drivers.
Was this solution helpful?