Question

We are running windows xp pro service pack 3 both 32 bit and 64 bit. We are using WMI to get the BIOS manufacturer and model, but we would really prefer an approach that used either the Win32 API or assembly language or something besides WMI or COM. Code samples are most welcome.

Was it helpful?

Solution

It's in the registry at HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION/System

You have SystemBiosVersion, SystemBiosDate, etc.

Also, there is a sub key called BIOS which has yet more information such as BIOSVendor and BIOSVersion.

Depending on who built the system you should also be able to get the BaseBoardManufacturer and other cool info.

UPDATE

You might check out this link. It's VB code. They try to read it from the registry, but failing that fall back to pulling string data out of a memory address. In this case it's &HFE061 for the Version and &HFFFF5 for the date.

OTHER TIPS

You can map in the SMBIOS memory and parse it. Most of the information you want is in there. This can be done from any language that has access to system memory mapping primitives.

Also, this document has information about the Win32 functions that can be used to query SMBIOS.

DmiDecode for Windows can do this.

There is an article in codeproject with source code that use API call GetSystemFirmwareTable to retrieve the SMIBIOS information. link: http://www.codeproject.com/KB/system/SMBIOS_Peek.aspx

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top