C++ – Extracting GPU information using C++ (and hopefully WMI?)

c++clockgpuperformance

I'd like to know how to extract GPU using C++. However, the information that I'm interested in is not the data that is available from the Win32_VideoController class (ahh.. the Murphy's Laws of Programming). Specifically, I'm interested in the (Memory and Shader clocks).

I'd like to know how to get at that information.

I'd like to avoid DirectX querying if possible, due to my lack of knowledge (in fact, zero :P) about it. However, should that be the easiest way, then I'm willing to take a shot at it. Any links/tutorials would be greatly appreciated.

Thanks

Best Solution

I think you want to use the SetupAPI facility that comes with Windows. It lets you enumerate devices and drivers. I've used it to enumerate GPU hardware, driver versions, etc. Here's a link:

http://msdn.microsoft.com/en-us/library/ms792983.aspx