I’ve been concerned about Microsoft’s mandatory update policy ever since the company announced it earlier this year. While I agree with Microsoft that mandatory security updates are a good idea, I’m dubious on forcing users to install features they may not want, and downright unhappy with mandatory driver updates. Driver updates pushed through Windows Update, after all, have a checkered history, particularly where graphics hardware is concerned. Now there’s firsthand evidence that Microsoft hasn’t built the kind of infrastructure into Windows 10 that would allow it to properly communicate what the OS has or hasn’t done.

First, a bit of history. If you’ve ever swapped out a video card for an entirely different GPU (say, moving from the AMD HD 5000 family to the 7000 family, or the GTX 285 to the GTX 970), then you’re aware that simply uninstalling drivers from the Control Panel isn’t always enough to make sure that old drivers are really, truly gone. This is doubly true if you’re planning to switch drivers between vendors, whether that’s from integrated Intel to AMD or Nvidia, or between AMD and Nvidia. Windows has slowly gotten better about switching between driver families, but there’s a reason that third-party utilities like Display Driver Uninstaller are still important. These types of utilities really dig through the OS and are meant to remove all of the cruft that a standard uninstall might miss. If you work in hardware review, product testing, or any form of IT, being able to make certain that files have been completely stripped out before you install new drivers is a fundamental part of troubleshooting.

I have been evaluating Windows 10 both in a virtual machine and on a testbed in order to examine the OS in two different scenarios. One of those testbeds has used both AMD and Nvidia graphics cards, and I followed my usual procedure for removing drivers from the OS: Run the driver uninstaller, then reboot into Safe Mode and run the latest version of Display Driver Uninstaller, or DDU. In all versions of Windows prior to W10, using DDU on a system would prevent the OS from automatically identifying and reinstalling the old GPU drivers when you rebooted (assuming, of course, that you didn’t manually swap the GPU out before turning the system on again).

Windows 10 apparently handles this differently.

In the screenshot above, you can see that the system is prepping to install driver downloads for both the AMD R9 series (currently installed in the testbed) and the GTX 980. What’s puzzling about this is that I’d already run DDU, which means W10 shouldn’t be picking up a GTX 980 in the system at all. I re-enabled updates and let the process run, since I wanted to see how Windows would react to being told to download an update for a GPU that wasn’t actually present in the system anymore. I rebooted after updates were installed, then checked the “View installed updates” page, expecting to see that the GTX 980 driver install had failed — the testbed has an R9 290X in it, after all, and neither AMD nor Nvidia drivers will install properly if the wrong type of video card is in the system. Instead, I saw the following:

Here’s where the shortcomings of Windows 10’s update policies really start to bite. I can’t see which driver was installed for any GPU, because W10 doesn’t give any additional information on a driver version number or offer a KB article that you can consult for further information. It’s not clear why the system would insist on trying to install a driver for the GTX 980; that GPU hasn’t been in the system for several days. Given that DDU was previously run, Windows 10 shouldn’t think there’s a GTX 980 installed in the first place.

It’s not a perfect world

In a perfect world, every driver update would be rock-solid, improve hardware performance and/or the available feature set, and would absolutely positively work on every supported GPU, in every configuration, every single time. In reality, this just doesn’t happen. This particular update doesn’t seem to break anything with Windows 10; I can’t find evidence that the GTX 980 driver installed, no matter what Windows Update claims. Even so, this is the kind of confusing issue that can lead to big problems if part of a driver update actually goes wrong. If you’ve ever swapped video cards without properly cleaning the driver off the system first, you’ve probably seen this happen. The Nvidia Control Panel or Catalyst Control Center may throw errors. Five games may run perfectly, two others run slowly, and the eighth won’t even start. The OS doesn’t give version numbers or identifying information, it just says an update was installed. There’s no patch notes and no explanation of what that update is actually intended to do.

I’m happy to acknowledge that relatively few people need to be able to block driver installs or control software versions, but for the people who need to do it, it’s absolutely critical. Right now, it’s not at all clear how Windows 10 will handle it when reviewers need to install pre-release drivers from Nvidia or AMD. If I’m running a private driver that supports Fury Nano or the GTX Super Titan XYZ, the last thing we need is an OS that attempts to install drivers that aren’t actually qualified for the card. Now that I’ve seen Windows update attempt to install drivers for a GPU that hasn’t been in the system for days and self-report that the process completed successfully, I’m even more dubious that the company will properly detect and select drivers in other scenarios.