Clarifying how to disable automatic GPU driver installs during setup/OOBE

Rozplay

New Member
Messages
18
Reaction score
0
What is the best way to prevent Windows from automatically installing Nvidia drivers during setup/OOBE/first desktop?

I could be wrong, but IIRC last time I installed Windows, it had already decided to install its own outdated Nvidia drivers during the setup/OOBE.

The first setting that comes to mind which might prevent this is ExcludeWUDriversInQualityUpdate=1 however I'm not sure if that is only applicable to the updates delivered via the standard control panel updates menu, or whether it also applies to the setup/OOBE?
 
Windows can deliver a new driver by two different methods:
- Critical driver updates bundled in a Monthly Update​
- Normal driver updates​

Prior to W10, driver updates were always separate from Monthly Updates. But MS then added the possibility of adding drivers in the CU to force a minimum driver version because of a known security issue for vulnerable drivers. Because some people are fearful of WU replacing their "perfectly good" driver, MS snuck some driver updates into the CU just in case you blocked normal driver updates.

OOBE will only force install the latest CU as a security feature (making sure Windows is up to date before the user logs on). It won't install a driver update, but WU is running in the background any way because it's a live Windows system.

It's not OOBE you have to worry about, but disabling driver updates the old fashioned way. Here's a solution for you:
https://ntlite.com/community/threads/guide-optimized-image.2990/post-30836
 
Windows can deliver a new driver by two different methods:
- Critical driver updates bundled in a Monthly Update​
- Normal driver updates​

Prior to W10, driver updates were always separate from Monthly Updates. But MS then added the possibility of adding drivers in the CU to force a minimum driver version because of a known security issue for vulnerable drivers. Because some people are fearful of WU replacing their "perfectly good" driver, MS snuck some driver updates into the CU just in case you blocked normal driver updates.

OOBE will only force install the latest CU as a security feature (making sure Windows is up to date before the user logs on). It won't install a driver update, but WU is running in the background any way because it's a live Windows system.

It's not OOBE you have to worry about, but disabling driver updates the old fashioned way. Here's a solution for you:
https://ntlite.com/community/threads/guide-optimized-image.2990/post-30836

Thanks for your quick reply and the amazing wisdom you shared. That's really insightful. To clarify, you're saying that OOBE itself wont install these drivers (great to hear) but the danger lies in the time spent on desktop immediately post-install? Cause yeah that's what I was worried about. I'll be installing with internet connected due to using an MS account, so I'm wary of it trying to install GPU drivers right away.

To be honest, I've never had major issues with windows overwriting drivers - and the only setting I normally change is the standard "ExcludeWUDriversInQualityUpdate" setting - it's just the first-time-setup/post-setup period on the desktop where I don't want windows installing its own GPU driver, when I have one ready to install.

I'd rather not change too many settings (I'm very wary these days of seeing "This setting is controlled by your administrator" messages in control panel, preventing any changes), so it sounds like I should be able to achieve what I want by either:

  • "ExcludeWUDriversInQualityUpdate" and possibly also "SearchOrderConfig"
  • Integrating the Nvidia drivers into the image, though this might be slightly beyond my comfort zone.
Yanking the internet cable is another option, but again - since I'll be doing setup with an MS account, I'm not sure how long it needs internet for, so I'd rather be safe.
 
MS's goal is not to clobber your good NVIDIA driver, they're just trying to make sure nobody installs a known bad version of the driver. So they provide something slightly later version than the bad one, so you can't install the bad one (because of the version numbers).

If you were to install a much newer NVIDIA driver, then Windows can't install any version that's older than yours.

Adding a new NVIDIA driver isn't too difficult. You download and extract the drivers to a local folder. From NTLite's Drivers screen, you would import from the local folder. A very important rule with NVIDIA is never import the entire folder, this will end up bloating your image with multiple copies of the drivers and all their helper files. We're talking GB's too big.

If you've installed this driver before, only pick the one named INF file which is currently running on your system. By picking the one INF file from the extracted folder, you will get only one copy of the driver set and not duplicate copies.
 
MS's goal is not to clobber your good NVIDIA driver, they're just trying to make sure nobody installs a known bad version of the driver. So they provide something slightly later version than the bad one, so you can't install the bad one (because of the version numbers).

If you were to install a much newer NVIDIA driver, then Windows can't install any version that's older than yours.

Adding a new NVIDIA driver isn't too difficult. You download and extract the drivers to a local folder. From NTLite's Drivers screen, you would import from the local folder. A very important rule with NVIDIA is never import the entire folder, this will end up bloating your image with multiple copies of the drivers and all their helper files. We're talking GB's too big.

If you've installed this driver before, only pick the one named INF file which is currently running on your system. By picking the one INF file from the extracted folder, you will get only one copy of the driver set and not duplicate copies.

Amazing info. Thank you. So basically - it's a case of identifying the core .inf file (easily done by looking at Driver Store Explorer which shows it) and importing only that into the NTLite drivers section. That sounds easy enough
 
I found the Nvidia driver - it's only around 500kb. Whereas DriverStoreExplorer reports the driver to be around 2gb.

Surely that single 500kb .INF file isn't enough on its own, to integrate?
 
The INF file enumerates a set of helper files, in this case a bunch of very large NVIDIA rendering DLL's used by higher level API's. It's not so much you're importing a driver as a driver framework for graphics processing.

There isn't just a "dumb" NVIDIA driver that does basic graphics. Your non-accelerated Windows app doesn't care, but any of your higher-end games or video processing apps will care about having those API's supported. So that's why it ends up so big on disk.
 
I think my misunderstanding here was that I was under the impression I should be integrating/including only that single .INF, but now I'm thinking I'm supposed to be including more than that, i.e the extracted driver package? And then only 'pointing' NTLite to the .inf.

I guess I should do some reading on this.
 
An INF is basically a manifest, it lists a set of required files to copy and reg changes to be applied. DISM reads the INF's lines, and figures out what files to copy into the mounted image's DriverStore folder. If the INF says to copy something from the extracted folder, then it gets copied.
 
Right, I think I get it. Your initial instructions just confused me a bit as it sounded like I should ONLY be importing the .INF, but now it sounds like a bit of both. I'm hoping it'll become clear once I actually do it.
 
NTLite can handle either importing a specific INF file in a folder, or just searching an entire folder (and subfolders) for random INF's it finds along the way. Since the NVIDIA driver pack is an "all in one" distribution for all supported GPU models, you don't want it to grab every INF it finds.

Other driver distributions may have a single driver instance for multiple devices (like the Intel network drivers), or just one driver per setup package.

NVIDIA is a special case that tends to bite people, because they're not aware that NTLite can grab every INF from a folder, even if that was not their intention. It doesn't hurt Windows, except to bloat both the image and your install with unused driver files.
 
NTLite can handle either importing a specific INF file in a folder, or just searching an entire folder (and subfolders) for random INF's it finds along the way. Since the NVIDIA driver pack is an "all in one" distribution for all supported GPU models, you don't want it to grab every INF it finds.

Other driver distributions may have a single driver instance for multiple devices (like the Intel network drivers), or just one driver per setup package.

NVIDIA is a special case that tends to bite people, because they're not aware that NTLite can grab every INF from a folder, even if that was not their intention. It doesn't hurt Windows, except to bloat both the image and your install with unused driver files.

Ohhh, that puts it in perspective - I understand now, thank you very much for the clear explanation! Very interesting.

In Nvidia's case I think it's always called nv_dispi.inf so I'll target that.

Good to know as well that you can find your appropriate inf file by checking your current system, in case of multiple device packages.
 
Back
Top