How to reduce Windows driver bloat
Over time on Windows systems, it’s inevitable that old device drivers get supplanted by new ones. Even on systems where drivers aren’t rigorously maintained, Windows Update will typically update at least a dozen drivers annually.
Those who pursue driver currency more vigorously may also use tools like the Intel Driver & Support Assistant (DSA), the NVIDIA App (which checks Nvidia graphics, sound, and 3D drivers), or general driver management tools such as ioBit’s Driver Booster or the SourceForge Snappy Driver Installer project to check and update drivers on Windows 10 or 11 PCs. Intel and Nvidia offerings concentrate on devices they make, whereas general-purpose driver update tools check all of them and point you at newer ones, with varying degrees of help and support in getting them installed.
Neither vendor-specific nor vendor-agnostic update tools remove old drivers as they cheerfully add new ones. Thus, while every driver update tool that I know of helps keep drivers up to date, they do nothing to relieve driver bloat. In fact, the Intel DSA is spectacularly good at adding to driver bloat, as you’ll see later in this story.
Unnecessary device drivers each up storage space. They may even slow down your system, so it’s good PC maintenance practice to clear out drive cruft.
Before I explain how to do that, let’s explore what’s involved when a driver gets installed under Windows.
What happens when you install a Windows driver?
This is actually quite a fascinating process and involves a lot of behind-the-scenes action in Windows. For this discussion, I’ll stick to so-called Plug and Play (PnP) devices. These are purpose-built to announce themselves to Windows so that it can assist in finding a device driver to use, if not always the latest and greatest one. My information comes courtesy of the terrific Microsoft Press book Windows Internals (7th edition in 2 volumes, as of this writing).
Here’s the process:
A bus driver informs the PnP manager about a device it discovers during enumeration using a device instance identifier (DIID).
The PnP manager checks the registry for a corresponding function driver. When it fails to find one, it tells the user-mode PnP manager about that device using its DIID.
The user-mode PnP manager tries to perform an automatic install without user input or intervention. For installers that involve posting of dialog boxes requiring user input, the PnP manager executes a Hardware Installation Wizard to oversee such task(s) if the logged-in user has admin privileges. (If not, this activity will be deferred until an admin-level user next logs in.)
The Hardware Installation Wizard uses Setup and CfgMgr (Configuration Manager) API functions to locate INF files that correspond to drivers that are compatible with the detected device. Mostly, this involves accessing such files from the local file system (or media like a CD or DVD) at the user’s direction.
Installation proceeds in two steps: (a) The third-party driver installer imports a driver package into the driver store, and (b) the OS performs the actual driver installation, using the Drvinst.exe process (the executable for which resides in %SystemRoot%System32). As part of that process, .inf and .cat files are deposited in the driver store associated with a DIID that takes the form of oemnnn.inf, where nnn represents a one- to three-digit decimal number. (Note: if you want to find this nnn number for any driver in the store — known as an index — you must use NirSoft’s excellent DriverView utility. The tool I recommend in this story won’t show it to you.)
This driver-handling process as documented says nothing about cleaning up older drivers present in the Windows driver store (in %SystemRoot%System32DriverStoreFileRepository). Hence, this article focuses on investigating the contents of that driver store and removing older and/or obsolete items to reduce its on-disk footprint.
Warning! There’s an important downside to consider when removing elements from the driver store. If you remove all drivers except for the most recent one(s), you will not be able to use the Roll Back Driver option in the Properties window for the related device in Device Manager. That’s provided to help users revert to an earlier version of the driver, should the current one prove unstable.
Indeed, when only one driver is present for a Windows device, the Roll Back Driver button is grayed out and inaccessible (see Figure 1) in its properties window.
Figure 1: When only one driver version resides in the Windows Store, rollback is unavailable.
Ed Tittel / Foundry
A more conservative approach to pruning your driver store might therefore be to keep the two most current drivers for any given device, rather than only the most current one. I myself do not follow this approach, except for drivers that are updated frequently or when using a beta driver. Those who maintain deployment images would be well-advised to follow this advice when testing drivers (and candidate deployment images). But all extraneous files, including duplicate or obsolete drivers, should indeed be pruned from images prior to deployment.
Getting the lowdown on device drivers in Windows 10 and 11
For modern Windows versions (10 and 11) there’s an excellent tool available to explicitly observe and manage the Windows driver store. That tool comes from GitHub, and it’s called Driver Store Explorer (also known as RAPR.exe). Version 0.12.135, the current version as of this writing, works quite well with both Windows 10 and 11.
To operate on the driver store, you must run RAPR.exe with administrative privileges (right-click the filename and then select “Run as administrator” from the resulting pop-up menu). Next, you must enumerate the items in the driver store, which produces a display that looks like Figure 2.
Figure 2 shows my Lenovo ThinkStation P3 Ultra 2’s driver store after cleaning it up with RAPR. Before cleanup, it had 925 drivers; after cleanup there were 906 left. Thus, 19 were removed. This reduced the size of the Driver Store from 6.44GB to 5.91GB, to recover 0.53GB of disk space, based on properties for the FileRepository folder in which driver files reside. Then I went looking for and deleted duplicate entries: that brought the count down to 897, and the size to 5.87GB (an additional savings of 0.04GB, for a total 0.57GB).
Figure 2: After cleanup, the P3 Ultra dropped 19 drivers; removing dupes dropped 9 more.
Ed Tittel / Foundry
To give you an idea of what can happen to this repository for driver files, I’ve seen the total item count on this same machine go as high as 1200, of which more than 150 items were duplicated Intel drivers of one sort or another (mostly Bluetooth or Wi-Fi). If you click on any of the column heads shown in this display, the listing will re-sort itself based on values in that column.
As I mentioned earlier, the Intel DSA and Nvidia apps are the worst offenders when it comes to causing driver bloat. Intel’s tool seems particularly prone to deposit up to dozens of copies of the same driver in the driver store. My example cleanup, depicted in Figure 3 later on, shows seven instances for each of two Bluetooth USB devices. All are named “ibtusb.inf” because the target PC has two sets of USB ports, and each one uses a separate driver instance.
Note: For whatever reason, if you have multiple instances of devices on (or in) your PC, you must indeed have a separate copy of a driver package (oemnnn.inf) for each one — that’s why you shouldn’t always remove what might look like unnecessary duplicates of the same driver on a PC. But high counts of the same driver — or worse, high counts of multiple versions of drivers for the same device — usually warrant cleanup. Fortunately, RAPR can handle this on your behalf.
Clearing out excess drivers using RAPR
To prune old drivers, click the Select Old Driver(s) button at the top right, then click Delete Driver(s). RAPR handles the rest for you.
And don’t worry: RAPR will not delete any drivers currently in use. That’s what the “Force Deletion” option is for, but you’ll seldom need it. The only times I’ve ever used RAPR’s force delete capability is when multiple sources of good advice have urged removal of a bad or questionable driver so that it can be replaced with a different, working, and older version. This is especially likely for printer drivers, for some reason.
Figures 3 and 4 show a before and after sequence to illustrate what typical cleanups involve.
Figure 3: The P3 Ultra shows 18 copies of ibtusb.inf and two of ibtpci.inf.
Ed Tittel / Foundry
Figure 4: After cleanup, just two copies of itbusb.inf and one of ibtpci.inf.
Ed Tittel / Foundry
Multiple devices each require a separate driver instance. Turns out the P3 Ultra has two sets of Bluetooth USB devices, so two drivers stay behind even though I tried to delete one of those. When you consider that typical graphics adapters can exceed 1GB in size, and ordinary devices range from 2MB to 35MB, it’s easy to understand how dropping unneeded entries frees up real space.
There’s one thing about RAPR worth recognizing: if a system includes multiple copies of the same up-to-date driver, the Select (Old Drivers) button won’t remove them automatically. In such cases, you’ll have to do that manually. I usually do so one section at a time, leaving the topmost instance of the same driver behind. FWIW, that seems to work pretty well.
Special note: Windows printer drivers, old and new
In March 2021, Microsoft unleashed its Universal Print architecture. Since then, most printers work with the same, simple set of print drivers. These are easily obtained and maintained through Windows Update, and they work reliably and well. For PCs or networks with older printers, one must still visit the maker’s website to download drivers tailored to run on specific printers (and printer configurations, in some cases).
Older printer drivers may stubbornly resist removal, even in RAPR, and even using its force deletion capabilities. The secret is to remove the printer from what’s visible (or connected to) a PC before messing with drivers. Then, you can more easily remove old ones. Indeed, new ones will nearly always install themselves once you hook up to or establish a connection with the printers whose drivers you wish to update. Consider this a word to the wise.
When is driver store cleanup needed?
An old internet saying also applies to Windows system optimization and cleaning: YMMV, an acronym for “your mileage may vary.” This means that different systems or deployment images will exhibit different behaviors, values, and so forth.
With that in mind, take a look at the properties for your driver store directory: if its size is over 5GB in Windows 10 or 10GB in Windows 11, I’d fire up RAPR and see what it can find. If it’s over 8GB in Win10 or 15GB in Win11, you’ll definitely want to see what’s in there and get rid of what you no longer need or want. I’ve seen some instances where the folder’s size exceeded 20GB. Trust me: you don’t want to let things go that far.
Note for admins: When you update a deployment image for distribution, you will often update items in the driver store. Because this does not automatically clean up older entries as you add new ones, you must use RAPR (or some equivalent command-line shenanigans) to clean out duplicate and obsolete entries. The only thing worse than extra, unneeded drivers in the store on one PC is as many such copies as you’ve got images running in your enterprise!
With Nvidia display drivers typically consuming 2 to 2.5GB per copy (or version), keeping older drivers around is a huge waste of space. You can keep two versions for safety if you like (simply uncheck the next-to-most-recent version after using RAPR’s Select Old Driver(s) option), but there’s no reason to keep more than two in the driver store. For a clean and tested deployment image, it should have only as many copies of any driver as it needs. (Before I started doing regular cleanups myself, I might find a dozen or more Nvidia display drivers on a PC with a one-to two-year-old OS image running.)
By policy, I schedule driver cleanups quarterly through a calendar reminder. In actual practice, I tend to check things more often than that. It’s not unusual for me to run RAPR after Patch Tuesday comes and goes, just to see what’s changed on my PCs. You can, of course, do as you like – just be sure to do this at least once or twice a year.
You really have to work at it to hurt yourself using RAPR, so you needn’t feel compelled to make an image backup before cleaning up your driver store. But because I’m a “belt-and-suspenders” kind of guy, I’ve gotten into that habit, just in case I accidentally remove something it turns out I really need. You can always reload that backup from the repair/recovery media for your PC if you wind up with a failing or unbootable machine after a too-aggressive cleanup. (Or you can mount the old image as a VM inside many backup utilities, such as Macrium Reflect Free, and pluck the drivers you need from that driver store using RAPR’s export and install tools.)
Who knows? Either could come in handy. With a backup you can clean up whatever you want, whenever you want without fear.
This article was originally published in November 2015 and most recently updated in January 2026.How to reduce Windows driver bloat – ComputerworldRead More