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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

On Demand Webinar: Networking for the Cloud Era

Ready to improve network connectivity? Watch this webinar to learn how SD-WANs and a one-click instant connect tool can boost provisions, deployment, and management of your cloud connection.

Question has a verified solution.

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

In days of old, returning something by value from a function in C++ was necessarily avoided because it would, invariably, involve one or even two copies of the object being created and potentially costly calls to a copy-constructor and destructor. A…
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticall‚Ķ
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.
Suggested Courses

771 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