Obtaining PC Model-Type / Serial No. From The BIOS

Posted on 2003-02-21
Medium Priority
Last Modified: 2010-08-05
I require a method (C++ / assembly) for obtaining the Model-Type of a PC from its BIOS (plus any other available info. of this type, eg. Serial No.).  This info is primarily required for auditing IBM and Dell equipment.

The auditing application runs under Windows NT class machines and is written in M$ Visual C++.

Does anyone have a snippet of code that will get this info?

Question by:Yemble
  • 3
  • 2

Expert Comment

ID: 7994146
The GetSystemInfo function returns information about the current system.

VOID GetSystemInfo(
  LPSYSTEM_INFO lpSystemInfo   // address of system information
                               // structure

Author Comment

ID: 7994357
typedef struct _SYSTEM_INFO
{  union {
    DWORD dwOemId;
    struct {
      WORD wProcessorArchitecture;
      WORD wReserved;
  DWORD dwPageSize;
  LPVOID lpMinimumApplicationAddress;
  LPVOID lpMaximumApplicationAddress;
  DWORD_PTR dwActiveProcessorMask;
  DWORD dwNumberOfProcessors;
  DWORD dwProcessorType;
  DWORD dwAllocationGranularity;
  WORD wProcessorLevel;
  WORD wProcessorRevision;

Sorry, but I don't see anything referring to MODEL_TYPE or SERIAL_NUMBER in the info block returned from GetSystemInfo.

Expert Comment

ID: 8002080
I think the assembly instruction for doing this is
CPUID on the x86 platform. The implementations of this
are different however, so you might want to try looking
around for a component that wraps this. I know
that one exists for Delphi, not sure if there is one for
Visual C++.

Here is a Delphi link:
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 8003224
Thanx for the response, but it's not CPU info. that I'm after.  I want to know the model type of the PC (eg. IBM 6275-21Y) from the BIOS.

Accepted Solution

ikarpov earned 225 total points
ID: 8003942
well the reason i suggested that is that it gets you the
CPU serial number.


has a utility with source for looking at physical memory
under windows NT (and I am assuming 2000) with source.
The utility is called "physmem".
In particular, the author says:

"While you are browsing your memory, some places of interest you might want to take a look at are offset 0x1000, which is where NTLDR is located (you can see its header in the example output above, which states that it can't be run in DOS mode), and 0xF9000-0xFFFFF, which is where ROM BIOS is mapped. You'll likely see strings belonging to the vendor of your computer and sometimes video adapter strings in the BIOS."

hope this helps.

Author Comment

ID: 8004447
That looks more promising.  There are some interesting strings in the range 0xFE000-0xFF000 which may be what I'm after.  I'll need to check this on a few different machines to see whether or not there is any consistency in where the data is stored.

Thanx again.

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Templates For Beginners Or How To Encourage The Compiler To Work For You Introduction This tutorial is targeted at the reader who is, perhaps, familiar with the basics of C++ but would prefer a little slower introduction to the more ad…
C++ Properties One feature missing from standard C++ that you will find in many other Object Oriented Programming languages is something called a Property (http://www.experts-exchange.com/Programming/Languages/CPP/A_3912-Object-Properties-in-C.ht…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question