The Windows Servicing Guy

Tips and tricks from a Windows support engineer on issues related to servicing

So what about the driver store?

So what about the driver store?

  • Comments 10
  • Likes

I was asked this recently and I thought it was an interesting question:

I know I cant delete things out of the component store, but what about the driver store?  Can I remove files from there without hurting anything?

The answer to this is: YES.

The driver store is a serviceable entity.  Drivers that Microsoft authors, like NTFS.SYS for example, obviously live here and are updated.  Does that mean that you need to keep every version of NTFS, or your old Nvidia or ATI drivers for that matter?  Of course not.  And for systems that are space sensitive, this would be one place to potentially see some impact on the bottom line when it comes to disk usage, especially if the machine were an upgrade or was in service for a while.  So, how do you get rid of the old drivers?  Personally, I always use pnputil.exe, it’s inbox and is fairly easy to use.  Here’s an example:

First, I would list out all of the drivers that are OEM.  The reason being that this has the highest likelihood of producing duplicates over time as the drivers are updated.  Here’s an example of my machine:

pnpuitl -e

Microsoft PnP Utility

Published name :            oem0.inf
Driver package provider :   Microsoft
Class :                     Printers
Driver date and version :   06/21/2006 6.1.7600.16385
Signer name :               Microsoft Windows

Published name :            oem1.inf
Driver package provider :   NVIDIA
Class :                     Display adapters
Driver date and version :   06/09/2010 8.17.12.5849
Signer name :               Microsoft Windows Hardware Compatibility Publisher

From here, you can remove any oem.inf’s you find that might be extra, my machine is pretty clean, as you can see from the example, but if I had updated my Nvidia driver several times, I might have 3-4 of those sitting around.  Once I have identified the driver I want to get rid of (let’s say the printer driver I have installed), I use the following command:

pnputil –d oem0.inf

It will remove the INF and the associated driver package in the store from the machine.

For more on command syntax and usage, see the MSDN page here: http://msdn.microsoft.com/en-us/library/ff550423(v=VS.85).aspx

Hope that helps,

--Joseph

Comments
  • This is another area besides WinSxS where as a user I feel the design is fundamentally flawed. Drivers should not be staged, all the drivers should not be stored in the DriverStore. The user should be asked to insert the disc. At least this should be optional during Setup (Copy all driver files to disk or not?). This is another example of the OS not showing consideration for the user's disk space. Another example why Vista was received as bloated. Why people refused to accept Vista's disk footprint from XP. The XP way was better: storing essential drivers compressed in the CAB file and other drivers on disc. Give users the option of whether they want to have all drivers staged or only on the Windows DVD and they will be very happy.

  • Also this means that I can only delete OEM drivers. If I delete all in-box drivers from DriverStore, and later I want to install hardware, the OS won't prompt me for the disc as that's not a supported method at all beginning with Vista.

  • I understand your point but I will defend the decision a little bit.  The majority of end users of Windows want their drivers in-box and want their devices installed without needing to go and get them.  Many people are still novices when it comes to computing and this is one way of making sure that there arent issues with devices being installed.  That being said, we did cut the amount of drivers stored in the OS when Win7 released, to help control the bloat.

    As for removing all of the in-box drivers from the driver store, I dont know why you would do that in the first place unless you were working with a really small drive.  If that's the case, my initial guess is that the hardware might not be the best choice for Win7 as it is.  

    But I guess my point is this, you actually have both choices.  If you dont want to have to worry about the installation of hardware then you can leave things the way they are and most of the time you'll be fine.  If you want 100% control over your machine and whats on it, you can do that to, but as you stated, you'll need to make sure you update the rest of the drivers along with whatever class of device you are installing (not sure about your supportability statement at the end though.)

  • What I would like to see improved is if I delete the drivers including the in-box ones from the DriverStore, the OS would prompt me when I next try to install hardware and fetch the drivers from the disc, extracting only the required driver from the OS image on disc. Deleting only OEM driver doesn't free up a considerable amount of space. I have a large HDD but my Windows partition may only be 100-120 GB and with programs installed, I end up struggling for disk space. Theres WinSxS growing, more logs being stored, more System Protection points and shadow copies created. Sure there's Disk Cleanup but somehow the disk footprint just keeps growing over time.

  • Point taken.  However, if you have 120GB of space and are struggling with free space, my assertation would be that its not Windows that the problem unless you have a serious bug of some sort, which we would have probably seen already.  I'll see what the product group thinks of the suggestion though.

  • Thanks. The best thing about this blog is your open attitude to accepting suggestions and forwarding it to the relevant product group.

  • Thanks for that, it's the main reason I started this blog (to get your feedback and help make our products better for you).  Keep the feedback coming!

  • Companies like Nvidia and AMD are releasing updates quite regularly, often more than monthly, and display drivers are typically the largest. My suggestion would be to have a Device Manager feature, such that when the user clicks a Rollback Driver button, a newly designed dialog opens from which the user can remove old versions.

  • I like this idea Drew, I'll suggest something like that.

  • Cool. Thanks Joseph.