Driver Dr & [Most?] Everything Drivers
Driver Doctor's on GOTD today... When an app like this is offered posts generally run the gamut from do to don't, what allegedly works [but maybe shouldn't, or isn't always safe], and so on. I tend to be in the update driver camp; years ago I was a street racer, who like every other real street racer believed in getting every ounce of performance possible, & I'm still that way. If my PCs got it, I want it -- simple. Not everyone feels that way, & that's cool.
If it's not worth it to you, &/or if you're happy with what you've got, far be it for me to tell you otherwise, let alone push you to change. At least as long as no one is hurt, e.g. you're not driving off a cliff & taking others with you. All of which means I take umbrage when someone says: "If it ain't broke, don't fix it." if/when it's shaded in terms of dire consequence, or perhaps even morbid doom. If you're running Windows A) you should be backing up, & B) if you've got an image backup you can restore, Why Worry? Put another way, if you don't have that backup there are MUCH scarier things to be afraid of -- scarier things you should rightly be afraid of -- so focus your fear on that.
The proper debate, which ultimately only you can decide -- it is your time after all -- is whether any potential gains from updating drivers is worth any potential risk of having to worst case restore a backup? It's one of those things that done right isn't a huge deal, has minimal risk, and may improve performance &/or fix problems &/or add capabilities. Done wrong it can worse case brick the device. Correctly IDing components & locating drivers can take quite some time & effort [there's really no skill involved], so there's software like Driver Doctor that attempts to do that for you.
[Note: There are bad driver versions from time to time, & since drivers load with Windows [some are even used in Safe Mode], a bad driver can also break Windows -- why & when you try the Load Last Known Good option on the same boot menu page as Safe Mode. Experience can teach you which drivers are *more likely* to break Windows if they're bad, e.g. graphics drivers, chipset drivers etc., but the only *really safe* way to update drivers is when you have a full image backup that you can restore. Windows 10 once (in)famously forced the download & install of a bad Nvidia graphics driver -- bad driver versions can sometimes be difficult [if possible] to avoid.]
Apps like Driver Dr have a few challenges... Correctly IDing components, keeping an up to date listing on driver availability, & sourcing drivers from reliable sources, making sure that any driver software has not been compromised, e.g. the bad guys like few things more than injecting malware at the driver level. Mistakes IDing components may or may not be glaringly obvious, but beyond that judging apps like Driver DR is a matter of [ideally large numbers of] people double checking results & reporting their experiences.
Driver Dr doesn't give you lots of detail on what drivers it finds missing or in need of update, but it will download them for you, & let you look at what the app downloaded before installing anything. Depending on the package(s) it downloaded, you *may* be able to tell if the driver files match something already installed, & hopefully if they're newer, simply by looking for [searching] for .sys files of the same name, normally in the C:\WINDOWS\system32\drivers\ folder, & viewing their properties to compare version numbers -- don't go just by date.
In my XP Mode VM it said it found a missing DMA driver, & when I OKed it, downloaded a driver package that unfortunately included more than one driver with Installshield installers, so I couldn't tell exactly what was included or which ones Driver Dr proposed to install. I let it go ahead by clicking install... it 1st tried to set a Restore Point, which is turned off in the VM, then ran the setup, which wound up reporting it wouldn't or couldn't work. Only 3 small files were added to the Windows\System32 folder -- only one had any useful info in Properties, & that one had to do with a display driver.
There are 3 Virtual PC Integration Devices with question marks in Device Mgr., so while it IDed a missing driver incorrectly, it wasn't a total miss as there may indeed be something missing [BTW it's been that way for years I think -- perhaps forever -- but has never caused problems so I ignore it]. The driver package it downloaded was old [2002], but newer than the S3 Trio graphics driver [that the VM emulates] at Techspot [1997]. And that's 'bout all I can say about my attempt running a Driver Dr scan & update in the VM.
Driver Dr itself adds 46 files, 20 folders in the DriverDR.com folder, & stores data including the license key in [UserName]\ Application Data\ in XP, or for 7-10, AppData\ Roaming\. Other than an uninstall key, the registry is left alone.
* * *
RE: Drivers... [with apologies for the stuff I forgot to stick in here]
A Driver is the software that the OS uses to talk to & use device hardware. Drivers are why you usually can't take a copy of Windows installed on one device, & use it on another with different hardware -- Windows doesn't know how to talk to the hardware to start the basic services etc. that it needs to run. The company that makes a component designs & writes the driver(s) that enable it to work -- they may or may not release their drivers to the general public, & companies whose products use those components may or may not enhance or improve on those drivers.
Generally a company *might* provide drivers as a download or on a disc packaged with their product(s) -- if/when the company does provide drivers, it will usually only update those drivers while that product is still most profitable, i.e. when it's both current & selling well. And generally what a company offers for its products lags behind what's available for the original components because they need to be tested 1st, at least for any obvious bugs or faults. That testing is less altruistic & more about avoiding support requests. The cheaper the cost of the product, the more likely you are to have to hunt down the best driver, or even a driver that will work -- good examples are almost anything USB that's cheap & requires a driver, like network dongles.
Writing drivers takes money that no company likes to spend. It also takes special knowledge of how a component works, which the company making a component is usually reluctant to share, so that company is usually the only source for a driver [that can be an issue with Linux]. While it's not as much of a problem nowadays with 10, that's why drivers in the Windows Update database are often neither current nor complete. When a new version of a driver is released it's generally to add a new or revised component, to enable the driver to work with newer software [e.g. games] &/or Windows versions, or to fix something that's wrong with the current, existing driver release.
The hardest part from a consumer perspective is identifying the components a device uses, followed by the sometimes equally hard task of finding if a new version driver has been released, & if so, finding & downloading it. Windows itself cannot be relied on to tell you what those components are, nor can it be relied on 100% when it comes to looking for driver updates, nor can any driver updates that Windows does find be counted on to work 100% of the time. That said, if you correctly identified a component, say the model number of a Realtek audio or networking chip, & find a newer driver at the Realtek site, downloading & installing that driver is neither difficult nor particularly risky.
The most foolproof way to ID a component in a desktop PC is to open the case & look at it. Another good way is to track down a device manufacturer's docs, sometimes located on the service portion of their site. Less certain is the ad copy on that manufacturer's site, which may or may not list major components. Note that the components actually used may change during or for a production run, usually without updating that product's web page or docs. You may find user reports on what hardware components are used in a device, but like anything on the internet, accuracy can vary. More useful are user reports of what drivers actually work for them.
Tracking down drivers can be easy or hard depending on the component & that component's manufacturer. You'll have to decide the amount of effort you want to put into it, e.g. a network chip that seems to work fine would be lower priority, & not worth the same effort you'd put into finding a fixed driver for a USB 3.0 chip that's working poorly. Going to properties for that USB 3 controller in Device Mgr. I see that the date of the current driver is 2/12/15. Then I hit up Google looking for something newer -- I can tell by the date on the results that most hits are older than that, so likely not of concern. The company that makes the chip doesn't have any drivers available, & most of what I do see in the Google results are for driver sites. I'm generally very wary of those, but check some out anyway, & don't see anything newer.
SO I try a new search, this time on the name of the single driver file. Now I get a bunch of hits referring to BSDs [Blue Screen of Death]. I've got the latest driver from Asus already installed, and decide that if it's that risky, I'll stick with the Asus drivers. Note that I also have a USB 3.0 controller that's part of the Intel chipset on this motherboard, so my decision is partly based on the fact that I can do without the problematic ASMedia USB 3.0 controller, adding a panel with USB ports to the front of the case, & plugged into the motherboard so it'll use the Intel controller. In other situations I have gone further, checking out several downloads from driver sites, uploading each that appeared newer to Virus Total, sometimes tracking down leads found in forum discussions & so on -- maybe 25% of the time it's been worth the effort.
Intel can be particularly vexing... I've found drivers on their site sometimes only by using Google to search the Intel site for the ARK page for the CPU, then following that to whatever downloads they offered. Other times it's been a matter of trying the different drop-down boxes &/or categories on their download center page. With Windows 10 I've gotten some Intel downloads by selecting the device in Device Mgr. & letting the update dialog search for updated drivers -- I was later unable to find those drivers anywhere else using any other method. Some people have had luck using Intel's driver update app -- not I.
Sometimes a motherboard, particularly in a laptop or tablet, will use a component in a way that the drivers from that component's manufacturer won't work. They can also use a cheaper version of a component than what that manufacturer references on their site, in docs, & has drivers for. Often in that case you're restricted to using whatever drivers the device's manufacturer provides, no matter how poor they might be. In cases where the component manufacturer's driver setup does not work, you **might**, & I stress MIGHT, be able to use the component manufacturer's drivers if you manually install them through Device Mgr., or use Search For Update in Device Mgr., where *sometimes* only the most critical parts get installed & used. Intel graphics drivers for their SOCs & mobile CPUs can be in that category.
Do back up 1st however... Driver rollback may not work -- uninstalling the new driver may not work, & may in fact break Windows.
Windows for the most part has no idea what actual components are used in a device -- Windows setup may get at least the major components right, or almost right, &/or some not at all. Windows setup, upgrade, or update may also try to refuse drivers -- often happens if they're unsigned. Windows can also install the wrong driver, and it'll actually work, though obviously not as well as it could if the correct driver was in place. That being said, if you buy a Windows device with Windows pre-installed, it can be useful to go through Device Mgr., noting the devices that appear there, & what driver files they use when those files are not supplied by Microsoft [Windows]. If a Windows or driver update or upgrade adds the wrong driver for a component, that list may be the only way you'll ever be able to tell.
You get to Device Mgr. through Control Panel. You can install, update, or check the Windows Update database for driver updates by right clicking on the devices shown -- selecting Properties lets you see what driver files are used & driver version. You can point the driver update dialog to the folder holding driver files, or in some cases you have to select the option to let you pick a driver, then click on have disk, pointing it to the folder with driver files [you often have to do this with unsigned drivers]. The Properties dialog also has an option to Roll Back driver versions, which may/may not work. While a downloaded driver package may have a setup file, with Device Mgr. you're looking for an .inf file, usually accompanied by the driver file(s) -- the .inf file may be the only file there, but that's rare. Those .inf files are usually copied to the inf folder in Windows BTW -- good to know if you're trying to stop Windows from continually installing the wrong driver(s).
When you install a driver Windows 7 stores the old driver files in a Last Good folder in the Windows folder, & gives you the option on the same Boot Menu page as Safe Mode to use Last Known Good. That folder will later disappear. Windows 10 keeps LastGood & LastGood.tmp folders. C:\Windows\System32\DriverStore\FileRepository\ includes drivers for everything that's installed, & maybe some stuff that's not. Individual folder names can be cryptic. Everything inside the DriverStore folder is restricted access -- assuming you set the options in Windows Explorer to view hidden & system files etc., you still can't get to those files generally unless you're logged into that copy of Windows. If you upgrade Windows 10 builds, a copy of the DriverStore folder should be included & accessible under Windows.old.
I've found it [sometimes Very] useful to copy the DriverStore folder somewhere else [another drive, partition, USB stick etc.] while I'm in that copy of Windows. If there's ever a need, I now have a complete copy of the installation files for most every hardware component. If for example I upgrade win10 builds & one of the devices in Device Mgr. isn't working right, I can point the driver update dialog to a copy of the DriverStore folder, though when the driver's unsigned I might have to point to the individual driver folder, going through the pick a driver option. ThatFileRepository folder can also be a good place to start if you're trying to clear more free space on a system or Windows drive/partition, e.g. if you update graphics drivers often, you might find several GB of old driver versions.
You can uninstall drivers in Device Mgr. too, though it may not work that well all of the time. Some things like graphics drivers may have [usually 3rd party] tools to remove all aspects of the old driver, but other than that, removing a driver can be tricky. SysInternals Autorun may get you to one or two registry entries for the driver, but there are usually more, & all have to go. If you don't find them all, Windows may not start. If you do find them all, but it's a critical component [meaning something else relies on it], Windows may not start. If you can get it out of the registry, & Windows works, you can try moving the driver files, & if everything still works, delete them. Or if you've got more than one OS installed, you can fire up another OS, move the driver files in question, & see if Windows still works -- if so you can delete the registry entries if you want. Usually software uninstall routines leave any drivers that software installed in place.
Not all drivers are really drivers, in the sense that they do not involve any hardware, but do make use of the fact that Windows auto-loads drivers when starting. These may or may not show up in the Services from Control Panel -> Administrative Tools. And yeah, they can be difficult to track down &/or spot [Autoruns may help], which is why malware writers like to setup malware files to run as drivers.
AMD/ATI graphics drivers deserve a special note... Their control apps use .NET, which means they're in the sort of databases that .NET maintains in Windows. That means that it's near impossible to get rid of a driver version absolutely & entirely without blanking out .NET & starting over with new .NET installs. Can be done but it's not pretty nor fun. MUCH easier to backup, & restore that backup if a new AMD driver doesn't work for you.