On Windows, how can my user-mode program get the driver version number(s) for the video card(s) installed?
Programs like ATI's "Catalyst Control Center" can display this information to the user or include it automatically into bug reports. How do they get it?
I've been looking thru the PSDK documentation, and I can't find anything relevant.
Can a user program walk thru the database that Device Manager displays?
Is there an IOCTL call like getting disk drive geometry?
Is it in a (reliable) registry key?
In PowerShell:
Get-WmiObject Win32_VideoController | format-table Name, Description,VideoProcessor,DriverVersion
The WMI objects are also available from any language that speaks COM or .Net.
ETA: You may wish to exclude records without a value for VideoProcessor, like the Live Mesh drivers. I did that by including |where {$_.VideoProcessor -ne $null }
in the pipeline before the format command.