fyr77/EnvyUpdate

Game Ready Driver and Driver Studio specific check

MD55DM opened this issue · 16 comments

Useful program, but should be able to distinguish whether the installed driver version is GRD (Game Ready Driver) or SD (Driver Studio) and consequently check the availability of updates related to the installed driver type.

fyr77 commented

Good call!
I'll investigate this.

fyr77 commented

Alright, so the API call for this is dtid, which can be either 1 for the Game Ready Driver or 18 for the Studio Driver.
Now I just need to find out how to tell which one is installed.

fyr77 commented

https://forums.developer.nvidia.com/t/detecting-which-driver-is-installed/160054/10

According to this, there seems to be no "official" way of differentiating between driver types.
I will investigate this further, but I currently do not own a device with Nvidia graphics to test this with. Any help on registry values or unique files would be appreciated.

The only thing I have found so far is reading .inf files from C:\Windows\System32\DriverStore\FileRepository, which does not have to be correct...

fyr77 commented

I will add a manual switch for now.

Unfortunately I can't help because I have little knowledge on the subject, but I wanted to thank you for trying to find a solution. Since I've two nVidia cards installed on my home computer, if you need help in testing something just let me know.

I've encountered the same issue while writing a Powershell installation script for nvidia drivers. How were you able to find which API call was responsible for GRD vs SD? I have tried using dtid=18 to no avail. And i cant find the Studio Drivers anywhere from changing the API calls around

I wrote a very basic AutoIt code to automatically check and retrieve the latest Nvidia Studio driver version.
I followed this guide:

https://github.com/lord-carlos/nvidia-update

And the resulting query is:
https://www.nvidia.com/Download/processFind.aspx?psid=120&pfid=933&osid=135&lid=1&whql=&lang=en-us&ctk=0&dtcid=1

fyr77 commented

I've encountered the same issue while writing a Powershell installation script for nvidia drivers. How were you able to find which API call was responsible for GRD vs SD? I have tried using dtid=18 to no avail. And i cant find the Studio Drivers anywhere from changing the API calls around

Some GPUs don't have Studio Drivers available. Which GPU are you using? I just tried with data for a 1080ti and dtid=18 and got the studio driver.
https://www.nvidia.com/Download/processDriver.aspx?psid=101&pfid=845&osid=57&lid=2&dtcid=1&dtid=18

fyr77 commented

The main issue I am having is that I can't differentiate between the two when they are installed on the computer. I also do not have a recent enough Nvidia card to test with.
To implement an automatic check for SD vs GRD, I would need to find a registry key or file that is different between the driver versions.

I run Win11 with a RTX 3090 Ti card + Studio driver.

If you registry contain the following DCHUVen key stored in:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvlddmkm\DCHUVen

Then the system is probably run a DCH driver release, read here for more info:
https://gist.github.com/fyr77/0ac16813c8f469d08789c9785f4368d2

fyr77 commented

Yes, but both SD and GRD run as DCH drivers. I am already using this registry key as well as a file to check for DCH vs Standard drivers.

I will try later to help you in retrieving the needed info...

I am sorry but I have not been able to find any useful information (either on the web or on my PC) to determine whether the driver installed is the GRD or SD version.

Oh thats interesting.
I had been playing with the variables for a while, but wasnt able to get Studio Drivers. Sorry if these are dumb questions, but are all these parameters available somewhere?

I'm working with multiple different GPUs, but i dont think that will cause any issues as the Studio Drivers appear to be the same for every card.

fyr77 commented

@pruneaue I attempted to document as much of the API as I could on the wiki of this repository. https://github.com/fyr77/EnvyUpdate/wiki/Nvidia-API
Maybe that can help you.

I was unable to find a reliable way of differentiating. Since this is a very minor issue and switching between the drivers is supported, I will close this as not planned.