I am looking for an example (library) of how to obtain mainboard serial number from C/C++ or asm language.

I found that Intel/AMD CPUs does not support Processor Serial Number - is it true?

Thanks in advanced!
Posted on 2004-12-03 06:23:01 by adamrogoz
1) You would need to read from certain memory range from the motherboard. However I cannot remember the exact value etc. Hopefully mark larson can answer this...

2) Isn't that what CPUID is for?
Posted on 2004-12-05 08:43:17 by roticv
I am looking for an example (library) of how to obtain mainboard serial number from C/C++ or asm language.

I found that Intel/AMD CPUs does not support Processor Serial Number - is it true?

Thanks in advanced!




1) You can get it from SMBIOS. The spec is on the DMTF ( Distributed Management Task Force) web page. Basically you have a bunch of structures in memory. Their are different structures for different components on your system.

Their are two structures that both have a serial number in them. I know some BIOS vendors use one, and others use the other one. So check both. The structures you will want to look for are Type 1 ( System Information) and Type 3 ( System Enclosuse). The spec shows you how to retrieve the information. And you might be able to find a tool or utility on the web that dumps SMBIOS types ( structures).

SMBIOS - http://www.dmtf.org/standards/smbios


2) Processor Serial Number was introduced by Intel on the P3. As far as I know AMD never implemented it. In the Dell BIOS we disable this feature. That means if you try and get it from the OS you won't be able to. As far as I know every BIOS vendor has disabled it. Their are privacy issues with the feature and that is why we disable it. That is also why Intel decided not to include it in the P4.


http://support.intel.com/support/processors/pentiumiii/sb/CS-007579.htm
Posted on 2004-12-05 14:18:06 by mark_larson
I found the following information:
structure type 1 - System Information and Base Board Info(type 2):
- manufacturer = MICRO-STAR INC.
- productName = MS-6580
- version = 5.00
- serialNumber = 00000000

structure type 3 - System Enclosuse and Chassis Info:
- manufacturer = Uknown Chassis Manufacture
- version = Version 1.00
- serialNumber = 123456890

What I need is UNIQUE mainboard serial number. If somebody know how to find it I will be very GRATEFUL for help.

Adam Rogoz
Posted on 2004-12-17 01:46:22 by adamrogoz
I found the following information:
structure type 1 - System Information and Base Board Info(type 2):
- manufacturer = MICRO-STAR INC.
- productName = MS-6580
- version = 5.00
- serialNumber = 00000000

structure type 3 - System Enclosuse and Chassis Info:
- manufacturer = Uknown Chassis Manufacture
- version = Version 1.00
- serialNumber = 123456890

What I need is UNIQUE mainboard serial number. If somebody know how to find it I will be very GRATEFUL for help.

Adam Rogoz


They are supposed to be filling out one of those 2 fields with the serial number. Bad Micro-star! You can always call tech support and report bad SMBIOS tables ;)
Posted on 2004-12-18 09:41:46 by mark_larson
How do you actualy read from the memory where this information is located (000F0000h to 000FFFFFh)? When I use ReadProcessMemory (even if I open the current process with all access rights) I get an error. If I just start searching at 000F0000h I get a page fault (?)... anyway, the window error dialog appears. So, how do I do it?

Spara
Posted on 2004-12-19 18:02:34 by Sparafusile