So I am trying to get information on graphics cards via WinAPI functions, but have a question regarding how to get my exact card information. I have written code to call Enu
The primary problem with "driver version" is that video driver consists of multiple components which might be marker differently and the versions you obtain via different APIs might also vary.
Perhaps straightforward way is to use SetupDiGetClassDevs(&GUID_DEVCLASS_DISPLAY, ... API and enumerate the items. This is going to give you the data close to what you see in device manager, with versions - DEVPKEY_Device_DriverVersion obtained with SetupDiGetDeviceRegistryProperty value specifically.
If you run this utility, if includes a section "Display Devices" with enumeration as mentioned, and it does mention driver version:
Display Devices
- Intel(R) HD Graphics 4600
- Instance: PCI\VEN_8086&DEV_0412&SUBSYS_85341043&REV_06\3&11583659&0&10
- DEVPKEY_Device_Manufacturer: Intel Corporation
- DEVPKEY_Device_DriverVersion: 20.19.15.4835 <<-----------------------
- NVIDIA GeForce GTX 750
- Instance: PCI\VEN_10DE&DEV_1381&SUBSYS_288B19DA&REV_A2\4&3834D97&0&0008
- DEVPKEY_Device_Manufacturer: NVIDIA
- DEVPKEY_Device_DriverVersion: 23.21.13.8813