Every time you attach a piece of hardware to your PC, whether it is a USB stick, a new graphics card or a keyboard/mouse, the drivers get installed for that device to become usable by Windows. This is perfectly fine but a problem arises when the device is not going to be permanently connected and may be something you plug-in once and never have to again. Unless you specifically remove the driver by uninstalling through any software which accompanied it, the chances are there will still be an entry for that device left in Windows long after it was removed. Windows will still try to look for and start these devices when booting and although the difference may be tiny, hundreds of them could affect booting time and system performance, especially on older machines. Issues when installing new hardware might also be caused by an old driver conflicting with a new one.
Although they aren’t needed anymore, these unused devices then become hidden, or ghosted, meaning you can’t ordinarily see them unless they are specifically looked for. The easy way to look for them is going to Device Manager and selecting Show Hidden devices in the View menu. You also need a system environment variable called DEVMGR_SHOW_NONPRESENT_DEVICES and set it to 1. The ghosted devices will display with a lighter grey than connected ones and can be individually uninstalled.
Although you might think all the hardware drivers are listed in Device Manager, looking in the Non plug and play Drivers tree will show you that drivers installed by software is displayed here as well. Things like internet security, backup and even system information/monitoring software will install drivers and these might still be here even if the software might have been removed long ago, like the hardware drivers. I have seen a number of internet connection or Firewall issues occur because there is an old ghosted software driver still present causing a conflict.
A utility called GhostBuster can help in this case because it enumerates all devices in the system and displays a complete list, including all the hidden devices. These ghost devices can then be selected for removal from the system, a bulk hidden device remover you might say. Both installer and portable versions are available, but as this isn’t a tool you would use often, the portable version makes more sense. Make sure to right-click the icon and Run as Administrator as elevated privileges are required.
Note: It’s worth pointing out from the off that it is not an automatic choice to simply remove all hidden drivers from the system so please don’t do that. Some are hidden by Windows and are meant to be hidden. A number of examples are usually in Network connections, Sound devices, System and Non plug and play. Either some experience is needed for removing what you want, or only delete the blatantly obvious ones like an old USB storage device or game controller. Ghostbuster will often mark these don’t touch ones for you but it’s still no guarantee. Also, if you get a funny looking device at the top like 00000-0000-000-000, leave it alone. The programs creator is not sure why it appears or what it’s purpose is.
The window is easy to read with each device grouped into its respective class, along with whether the device is ghosted, what type of match filter is applied and the device description. Information about total number, how many are filtered and how many are tagged for removal is listed at the bottom. Devices with a status of Ok and Service are important or in use so will not be included in any removal process.
By right clicking you can select every hidden ghosted device in a given class or every device that matches the given devices name you have clicked on. Adding a wildcard will select every device in the list matching it. The remove options will be available to reverse the selection.
Simply click Remove Ghosts when you have chosen what to remove. A reboot is a good idea afterwards. Hopefully you won’t get any found new hardware windows on startup because this means you removed something that is still required by the system.
An option that would be useful is being able to select entries individually or by description. As an example, I have 94 ghost devices (yes 94) listed in Disk Drives. Many of these are redundant and will never be used again, but a lot will so I don’t want to remove those. Currently adding by class will enable all of them as will adding by device or wildcard. The program does not remove the driver files so most of these drives should be picked up again upon insertion. Maybe an option for a future version. Compatible with Windows XP, Vista, and Windows 7