Link to home
Start Free TrialLog in
Avatar of Yemble
Yemble

asked on

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

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?

Thanx.
Avatar of J0ker
J0ker

The GetSystemInfo function returns information about the current system.

VOID GetSystemInfo(
  LPSYSTEM_INFO lpSystemInfo   // address of system information
                               // structure
);
 
Avatar of Yemble

ASKER

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;
} SYSTEM_INFO;

Sorry, but I don't see anything referring to MODEL_TYPE or SERIAL_NUMBER in the info block returned from GetSystemInfo.
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:
http://www.torry.net/cpu.htm
Avatar of Yemble

ASKER

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.
ASKER CERTIFIED SOLUTION
Avatar of ikarpov
ikarpov

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Yemble

ASKER

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.