Most hardware devices you use with your PC require drivers — but what happens to them and their associated files when you change the hardware or update to new drivers? Unfortunately, they hang about in various locations, cluttering your hard drive and storing up problems for the future. We explain how to make a clean sweep and get rid of them once and for all.
Drivers act as the glue between hardware devices and operating systems such as Windows, Mac OS and Linux. However, while most of us install them and forget about them, for a few PC owners driver issues represent a world of frustration and a huge amount of wasted time, and can even cause the selling of computers or soundcards when seemingly intractable problems can't be solved.
Microsoft's Windows has always shipped with a large number of generic drivers that will be installed by default when the operating system is first installed on a new PC. In the case of modern Windows versions such as XP, this driver collection is now vast. As part of its setup procedure, Windows scans for a host of 'Plug and Play' hardware devices, including those permanently soldered onto the motherboard, as well as those plugged into it, and installs one or more driver files for each and every device it finds. These drivers generally provide good performance, but nearly every PC hardware device, including motherboards, graphic cards, soundcards, USB and Firewire peripherals, comes bundled with a CD-ROM containing a set of more recently released and better-optimised drivers, to enhance performance and possibly add new features and options. So while allowing Windows to deal with most device driver installation is the easiest option, visiting the various manufacturer's web sites in search of more up-to-date drivers will generally improve the overall performance of your PC.
In the case of most audio interfaces (the most important hardware device for the musician), Windows won't have any generic drivers to call on, making manufacturer's device drivers vital. If any device driver is not automatically installed by Windows, the 'Found New Hardware' wizard will appear and ask you to point to suitable drivers on your hard drives, or offer to search for them on the Internet. Without suitable drivers you can't use a hardware device at all, as some people find out the hard way when upgrading to a new version of Windows and finding that one or more of their peripherals isn't recognised. If its manufacturers haven't yet written suitable drivers that you can download from their web site, you won't be able to use the device(s) until they do, and if no updated drivers ever appear, you never will. In such a case, you'd have to either revert to your previous version of Windows or buy a replacement device that did have suitable drivers.
Even when the manufacturer provides drivers for the product you bought, you may very occasionally be unlucky enough to find that they conflict with another device in your particular PC, and this is when you may start to tear your hair out. After 'Which soundcard should I buy?', I've come to the conclusion that the most frequent question on the SOS Forums is 'Why don't my audio/MIDI/DSP/graphics card drivers work properly?'
The vast majority of problems seem not to be caused by obscure combinations of devices fighting for supremacy, but by issues relating to driver installation or removal. These can result in the classic yellow question mark or red exclamation mark appearing in Device Manager (generally indicating missing device drivers or conflicts), greyed-out or missing audio/MIDI entries in applications for your interface, plus crashes that don't seem to affect any other device. Quite often the reason is simply a refusal on the part of the user to read the manufacturer's advice regarding the safest way to install new hardware, which is why I found myself offering the age-old advice to 'RTFM' as recently as PC Notes December 2004. However, even when you've carefully followed step-by-step instructions, updating existing drivers can still sometimes cause problems. Moreover, removing those relating to hardware that you're about to physically unplug from your PC is often not as easy as it should be, while removing the final traces of drivers from your machine after the hardware has long since been unplugged and sold through SOS Reader's Ads can seem, at times, almost impossible!
I've written on these topics in past issues of SOS, but since I still find myself regularly answering forum queries on the subject, there's obviously a need for a definitive feature to pull all these strands together and further expand on them. I'll mostly be referring to MIDI and audio interface drivers, although the majority of the advice also applies to AGP or PCI cards and Firewire, PCMCIA and USB peripherals.
There have been a lot of posts on the SOS Forums recently from musicians suffering audio-interface clicks, pops and crackles. Many seem to automatically blame badly written drivers. Currently, the most popularly offered cures are to alter the PCI Latency Timer settings or, in the case of a PCI soundcard, to move it to another slot to avoid IRQ sharing. I'm possibly partly to blame for these generalisations, after my features on these subjects in SOS October 2004 and March 2003 respectively, but there are many other, far simpler, causes to rule out first.
First, check for intermittent connections on your audio and mains cables. The latter, in particular, can cause nasty crackles if there's a loose wire inside the mains plug. Continuous crackling, buzzing or scratching noises in the background may be due to ground-loop problems, and the quickest way to check is to temporarily unplug all the audio cables from your interface and plug in a pair of headphones instead. If the interface sounds completely clean on headphones, the chances are you've got a ground loop (see my feature on 'Computer Audio Problems' in SOS November 2004 for how to deal with this).
Very occasionally, a PCI soundcard may not be recognised at all, so Windows can't install any drivers for it, even if you've followed the manufacturer's install instructions perfectly. This can sometimes happen when the motherboard PCI slot contacts are dirty or wearing out, or the PCI card itself has dirty contacts, which results in the card's Vendor or Device ID being incorrectly read by the BIOS and Windows. Generally, re-seating the card in its slot will resolve this problem, although cleaning the contacts with a suitable cleaner, like Caig's Pro-Gold (or, in the case of the card, using a pencil eraser), will cure it once and for all.
"Always install the latest available drivers" is a mantra uttered by support staff around the world, and for good reason. Each new driver version generally incorporates at least a few small bug fixes, and sometimes major ones, plus tweaks designed to further minimise compatibility problems with the other hardware we PC owners install in our machines. New drivers may also offer enhancements to existing features, and in a few cases may even update the firmware (re-configurable chips on the hardware itself) to provide completely new features — such as support for new soundcard sample rates, for instance. Ensuring that you always have the most recent driver version installed thus makes perfect sense — usually. However, very occasionally there may be valid reasons for not upgrading to the latest drivers. "If it ain't broke, don't fix it" is still good advice, and if your PC is running smoothly when a new driver version that offers no obvious advantage is released for your soundcard, don't feel you have to install it. Despite a couple of incremental updates being released by Echo, I've been running the version 6.06 drivers for my Mia soundcard since March 2003, only upgrading when the 6.11 version appeared with GSIF2 driver support in November 2004, since this version finally provided me with a new feature that I could personally benefit from.
The quickest and safest approach is to first download any documents relating to a driver update and read through the version history. If the modifications only cure problems unrelated to your particular system (crashes that you've never experienced, or improvements to other models supported by the same set of drivers, for instance), it's probably safe to continue using the current ones. You may have to download the latest drivers in zipped form to get the related release document, but that doesn't necessarily mean that you have to install them! Most owners do, though, and if they do have any complaints, the most common one is that they don't notice any change in performance at all. This is generally par for the course (it's rare to notice a significant improvement from one driver release to the next), although if you've been suffering from a compatibility problem that's now fixed you might find yourself able to run a soundcard with a smaller buffer size, and hence a lower latency, or the new drivers might simply offer a smaller buffer-size option that you can take advantage of.
Very occasionally, performance may even suffer slightly in a newer driver version, as new features or compatibility tweaks are layered over the top of the original core routines. Over the years I've noticed a few soundcard owners reverting to the previous version of their drivers after trying new ones, but this is a rare occurrence.
Ironically, uninstalling existing drivers can cause more problems than installing new ones. Although most Plug and Play devices can theoretically be uninstalled simply by disconnecting or physically removing them from the PC (after first switching off the computer in some cases), this approach can sometimes result in problems later on, as many musicians have found to their cost.
The problem is that Windows, while marking the device as not present, still has various references to the old hardware in its Registry, and the driver files relating to it are still stored in the various Windows folders on your hard drive. After all, when you unplug a USB or Firewire device it no longer appears in Device Manager, but as soon as you next plug it in all its drivers are ready and waiting to be used and it reappears in Device Manager as a valid device. The situation is exactly the same if you, for instance, unbolt a PCI soundcard, so unless you take the trouble to uninstall its Windows drivers they'll continue to hang about and may cause unpredictable problems in the future. As an example, it's not unknown for Windows to falsely recognise a new item of hardware and attempt to install the wrong drivers for it (for instance, Windows 2000 and XP think Emu's new 1010 PCI soundcard is a Creative Audigy), while if a new soundcard is similar to one long-removed, you might end up with a mismatched set of driver files (some from the old card and some from the new). Even if you take the trouble to delete the old driver files by hand, but leave pointers to these deleted files in the Registry, error messages may later be generated if one of your audio applications still thinks the old soundcard is installed. There are lots of confusing possibilities.
The simplest way to uninstall device drivers before removing the hardware from your PC is to open Device Manager, right-click on the device in question, and then select the Uninstall option. You then click on the OK button in the subsequent 'Confirm Device Removal' dialogue box and, once the deed is done, power down your PC and remove the hardware. However, this method doesn't delete the driver files from your hard drive. A more thorough approach may be available via the Control Panel's 'Add or Remove Programs' applet. Many recent audio interfaces provide a dedicated uninstall option as part of their setup application. Annoyingly, though, even running such an uninstall routine may leave behind various files (and the setup application itself will remain).
The very best option is to run a dedicated stand-alone uninstall utility that will completely erase all references to a particular piece of hardware once and for all, before or after you physically remove it. A classic example is M-Audio's Delta Uninstaller, available for download from M-Audio's web site Perhaps unsurprisingly, many manufacturers don't publicise such utilities, but you may find one tucked away somewhere on the orginal CD-ROM bundled with the product, or available as an option if you re-run the original Setup.exe file from the CD-ROM. You can even run the latest driver installer utility if it first uninstalls the old drivers and then provides an option to install the new ones. If all else fails, contact the manufacturer or post a request on an associated support forum to find the best approach for a thorough uninstall.
Fortunately, the more complex devices, which may have hundreds of driver files and thousands of references to them in the Registry, tend to be the ones that offer setup uninstall options or dedicated uninstall utilities, since the driver references are almost impossible to completely eradicate by hand. Over the years I've successfully used such utilities to uninstall the many and varied references to ATI and Matrox graphics cards, for instance, as well as audio interfaces from the Echo, Emu and M-Audio ranges.
Sometimes you may be left with a stray reference to your old hardware in the Windows Control Panel, such as a link to the hardware's own Control Panel utility or, in the case of some copy-protected software, a dongle-management utility. I recently found one on my own PC relating to the Wibu-Key used by Native Instruments to protect Reaktor 3.0, but abandoned in version 4. Even though I'd uninstalled the application, this reference was left behind.
If you're lucky, you'll find an entry in Windows' standard 'Add or Remove Programs' list to uninstall the dongle drivers, but often this isn't an option. It's worth making a visit to the manufacturer's web site (in the case of the Wibu-Key, www.wibu.com) to search for a dedicated uninstall utility, but if you don't have any luck, the easiest way to find out the name of the main file involved is with Microsoft's TweakUI utility. This has recently been updated by Microsoft and is available in a new version 2.10 for Windows XP SP1 (and higher) and Windows Server 2003 (www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx). TweakUI has a page for hiding Control Panel Extensions. Simply unticking the extension will disable it and stop it appearing again in the Control Panel, although this action won't uninstall it. However, if you want to permanently remove the associated file or files, using TweakUI will give you the name of the main file involved, and you can then delete it by hand.
Generally, installing a newer version of a driver for existing hardware is easier than getting rid of those related to hardware you are about to or have already removed. Nevertheless, many musicians run into problems while updating audio-interface drivers and, once again, thoroughly removing the old ones first nearly always results in fewer 'issues' later on. As I've already reminded you, scrupulously following the manufacturer's instructions always helps, particularly relating to the order in which you should install drivers and plug in the hardware, and whether or not you need to remove the hardware before updating the drivers (which tends to be the case with dongles, for example).
Some musicians still automatically launch Device Manager, right-click on the device whose drivers they want to update and choose the 'Update Driver' option to launch Window's Hardware Update Wizard. While doing this will provide you with an extra option to connect to the Internet so that Windows Update can search for new drivers for you, the chances of finding any for the majority of professional audio and MIDI interfaces is almost nil. However, the main problem with leaving Windows in charge of audio or MIDI interface driver updates is that it's been known for it to discover some existing old driver files part-way through the update, even after you've pointed at the location of the new ones, resulting in a mix of old and new driver file versions being installed. Such mix-ups didn't happen so often when manufacturers insisted that new drivers should always be copied onto a floppy disk before installing them, because the source drive was then A: and the destination drive C:, but nowadays nearly all of us download new drivers via the Internet, so both old and new files end up on our hard drives and the possibility for Windows confusion increases.
For years, the next line of defence against such problems was to follow detailed step-by-step instructions, downloaded from the interface manufacturer's web site, on how to remove all references to their hardware by hand, before attempting to install newer driver versions, to stop such version conflicts. However, since many owners ignored these instructions and ran into problems, such manual uninstall information is disappearing and the tiny 150Kb zipped collections of driver files that we used to download are being replaced by intelligent belt-and-braces installers of several megabytes in size. These perform all the searches for us, delete all the driver files, and then place the same 150Kb of new driver file versions into the appropriate folders, before telling us to reboot our PCs. Thus, when Windows detects a soundcard and finds no drivers installed for it, the complete set of new files is sitting there ready and waiting for it, with no possibility of confusion.
Yet another reason to follow the manufacturer's instructions when upgrading audio or MIDI interface drivers is that most modern interfaces have dedicated Control Panel utilities or complex mixer console software as well as the driver files. Windows doesn't know about these, and if you let it take charge you could end up with new drivers being controlled by an older version of the Control Panel, which is another recipe for crashes or other weird and wonderful problems for the future. If you're installing your interface for the first time, letting Windows take the strain will also result in no Control Panel utility appearing at all — only the drivers will be installed. I'll say it one last time: it really does pay you to follow the manufacturer's advice!
If the hardware utility you want to remove doesn't appear in Control Panel and you suspect that it's being run as a startup routine, the easiest way to find out is using Microsoft's System Configuration utility, which you can launch by selecting the Run option in the Start menu, entering 'msconfig' into the text dialogue and pressing return. On the Startup page you'll find a list of routines that are either in the common Startup folder or in the Registry's Run or RunOnce sections. Just as with extraneous Control Panel entries, unticking one will stop it being loaded on the next boot (ideal for double-checking that it isn't still required), and you can then delete the file manually.
A rather more elegant utility is the freeware Autoruns from SysInternals (www.sysinternals.com), which not only shows you what programs are configured to run during Windows system boot-up or login, but also displays them in the order in which they are processed. It can also display other parameters, such as Explorer add-ons (shell extensions, custom toolbars, and the like), and helpfully lets you hide the multitude of Microsoft entries if you're searching for third-party add-ons. Using Autoruns you can selectively disable any extension and also permanently delete it, from within the same application.
So what can you do if the worst happens and you've already yanked out and disposed of loads of hardware without first uninstalling its drivers? Well, first take a look in your 'Add or Remove Programs' list. If there's still an entry for the hardware in question, it's still worth trying to run it. You can also downoad and run any dedicated uninstall utilities after the event.
In the absence of such device-specific options, there are various manual techniques you can use to track down driver files, and references to them in the Registry. However, anyone who wants to try these techniques should be aware that they can entail grave risks, and if you accidentally delete any system files or Registry entries that may still be required, you may subsequently be unable to boot up Windows at all. If you want to try the techniques, I would strongly recommend first creating a backup image of your Windows partition, using a suitable utility, such as Norton's Ghost, so that if you run into problems you can use the saved image file to exactly restore Windows to its former state.
The first technique is the one that I described back in PC Notes June 2004. Judging by the number of times readers have since asked me for the link to the on-line version, it has since become a well-used routine amongst PC musicians. The Windows NT, 2000 and XP Device Manager only normally displays Registry entries for devices that are currently connected, even if you use its'show hidden devices' function, but if you follow these steps you can force it to display redundant devices that are no longer connected, so that you can delete them once and for all.
- First you need to start the Windows Command Line Prompt, by selecting the Run option in the Start menu, entering 'cmd.exe' into the text dialogue and pressing return. This will launch a DOS window into which you type the following commands, pressing return at the end of each:
- Device Manager will automatically appear after the second command, and now if you go into its View menu and select 'Show hidden devices' you should see quite a few 'greyed out' items referring to missing hardware. For more details on what's safe to delete and what's not, check out www.soundonsound.com/sos/jun04/articles/pcnotes.htm.
Here are some additional points that may help. First, before deleting any greyed-out item belonging to old hardware, if you double-click on it (or right-click on it and select Properties), select the Drivers page and then click on its Driver Details button, Windows may be able to display a list of all the driver files the old hardware used. Since these are not deleted when you delete the Device Manager entry, it's worth noting down the non-Microsoft ones for later removal by hand, if you want to be thorough.
It's also worth knowing that every time you plug a USB-based interface into a new port, Windows needs to configure the driver for that particular port, and will therefore ask for the drivers to be installed all over again. So if you've got six USB ports and you tend to plug your audio or MIDI interface into whichever one happens to be unused at the time, you could end up with six references to it: one currently valid if the interface is plugged in, and five other 'non-present' or 'ghosted' versions. This Registry entry duplication also happens if you move a PCI card to another slot, and with some interfaces after you apply a firmware update as part of a new driver release.
If you've got lots of USB devices, you've shuffled your PCI cards around a lot, or your audio interface manufacturer has released lots of firmware updates to add new features (like some of RME's range, for instance), you can end up with loads of unwanted references. Aside from the fact that they clutter up the Registry, these entries may prevent you from installing a new interface properly. This happens because different versions of Windows have various internal limits on the number of device drivers that can be installed.
One notorious example that's hit various musicians is the 10-entry limit on internal 32-bit drivers that affects Windows NT, 2000 and XP. In the Registry, MIDI devices, for example, appear in the Drivers32 section (see screenshot) as 'midi', 'midi1', 'midi2', 'midi3' and so on, up to 'midi9', while audio devices appear as 'wave' to 'wave9', and audio mixer devices as 'mixer' to 'mixer9'. Although there may be duplicates and unwanted entries in these lists, once the maximum of 10 exists in the Registry, no more can be created, preventing you from installing further devices. So if you encounter problems such as non-appearance of MME Wave or MIDI devices after you've installed a new interface, although the ASIO drivers work fine, this might be the cause.
The problem can be cured by installing Windows again from scratch, although (not surprisingly) few musicians want to take this drastic step. A second, but potentially more dangerous, approach is to manually delete some of the offending duplicated entries in your Registry that are causing the problem. Matthias Carsten of RME has written an in-depth technical page that you can consult if you're prepared to modify the Registry by hand in this way (it's at www.rme-audio.com/english/faq/10entrye.htm).
Having said all that, according to my experiments, the extra devices should all appear in 'greyed out' form in Device Manager when you follow my instructions above, and deleting them here seems a far safer option. M-Audio also provide Midifixutil.exe, that will automatically clear the Registry of previously installed MIDI devices if you run into this problem when installing one of their MIDI interfaces.
Another potential source of problems is the Windows INF files used during the installation process of each hardware device. These are text files that contain driver and registry information, and can be found in the C:\Windows\Inf folder. If, after uninstalling old interface drivers, you have problems when trying to install new ones, it may be because Windows has found an old INF file relating to the hardware. Try doing a search for your interface name in these 'oem' files and delete any such INF files you find.
My INF folder contained a massive 1473 objects, but to narrow it down you will mostly find those associated with audio and MIDI interfaces named 'oemX.inf', where X is an arbitrary number determined by the order in which the devices are installed. This makes it considerably easier to find files relating to an old audio or MIDI interface. Some interface manufacturers (such as ESI Pro) provide a dedicated Infclear.exe utility to weed out INF files for their products prior to a driver update, while others, such as Echo, include this search as part of their automated install utility.
Even after you've run a dedicated uninstall utility that removes the driver files, associated INF files, and sometimes even references to the hardware within the Registry, your old audio and MIDI interfaces can still leave behind loads of Registry entries generated by your music applications when they originally found the new hardware and added it to their list of available options. No automated utility can be trusted to remove these, since it can't know what's safe to delete and what's not. However, one extremely useful freeware utility that I regularly use to help me do the job manually is Regseeker from Hover Inc (www.hoverdesk.net/freeware.htm). Apart from a general-purpose 'Clean the Registry' function that's very useful for stripping out invalid items, missing files and bad references, it also includes a 'Find in Registry' function that's perfect for tracking down the final references to old hardware.
As an example, after using Echo's comprehensive uninstaller on my Echo Mia (it not only removes the driver files and associated INF file, but also various Registry references), I entered 'Mia ' (with a single space after the name) into Regseeker's Find function and found 152 remaining references (see screenshot above) relating to its Activemovie, ASIO, ASIO DirectX, ASIO Multimedia, Direct Sound, MIDI and WDM entries in the likes of Cubase, Pro 53, Reaktor, and even some long-ago deleted applications.
Once the search is complete, click on 'Select All' near the bottom of Regseeker's window, then scroll through the list to see if any stray references whose name accidentally incorporates that of your search term have been included. For instance, before I added that extra space character my search included various references to 'WmiApSrv' and 'WMIAdapter', but including the extra space character produced a list without unrelated entries. Any incorrect ones you happen to find can be individually de-selected from your list by ctrl-clicking on them with the left mouse button. After making sure that Regseeker's 'Backup before deletion' tick-box is ticked, right-click and select 'Delete selected items'. I've been using Regseeker for several months and have never had a problem after doing so, but should you ever subsequently encounter error messages you can restore the deleted references by using Regseeker's Backup function.
Anyone who has changed their audio interface a few times would be well advised to do a search for the names of the old interfaces in the Registry. There could be hundreds or even thousands of unwanted references in there!