views:

557

answers:

2

I need to access motheroard identification (serial, manufacture, etc) in my application on multiple processes. I have been able to successfully query this using WMI, but I'm looking for an alternative.

If you care to know situation:

I have some application behavior that is different depending on the hardware configuration, or if a particular environment variable is set (for testing purposes).

bool IsVideoCardDisplay = ( getenv("Z_VI_DISPLAY") || !QueryWmiForSpecialBoard() ) ? false : true;

When the environment variable is set the WMI query isn't necessary--the application runs fine. However, when the environment variable is not present some of the components of my app fail to launch when is necessary to make the the WMI queries. I suspect that there may be some side effects of the WMI calls (which only a maximum of happen once per processes. This is why I'm seeking an alternative way.

A: 

That information is provided by the CPUID instruction. The following link provides you with a program that uses this instruction to expose the results of executing the instruction.

cpuid GNU program

steve
I'm not interested in CPU information, but I need to be able to identify the manufacturer and serial number for the motherboard.
Valentein
The CPUID instruction provides the serial#
steve
Again, it's the motherboard I'm interested in. __cpuid provides information about the CPU, which is not relevant to my application.
Valentein
+1  A: 

Apparently there is no way to do this, which is unfortunate.

Valentein