SYSTEM_INFO

This structure contains information about the current computer system. This includes the processor type, page size, original equipment manufacturer (OEM) identifier, and other such information.

At a Glance

Header file: Winbase.h
Windows CE versions: 1.0 and later

Syntax

typedef struct _SYSTEM_INFO {
DWORD
dwOemId;
struct {
             WORD
wProcessorArcheitecture;
             WORD
wReserved;
}
DWORD
dwPageSize;
LPVOID
lpMinimumApplicationAddress;
LPVOID
lpMaximumApplicationAddress;
DWORD
dwActiveProcessorMask;
DWORD
dwNumberOfProcessors;
DWORD
dwProcessorType;
DWORD
dwAllocationGranularity;
WORD
wProcessorLevel;
WORD
wProcessorRevision;
} SYSTEM_INFO, *LPSYSTEM_INFO;

Members

dwOemId

An obsolete member that is not used by Windows CE.

wProcessorArchitecture

Specifies the system’s processor architecture. It is no longer relevant. Use the wProcessorArchitecture, wProcessorLevel, and wProcessorRevision members to determine the type of processor.

dwReserved

Reserved for future use.

dwPageSize

Specifies the page size and the granularity of page protection and commitment. This is the page size used by the VirtualAlloc function.

lpMinimumApplicationAddress

Pointer to the lowest memory address accessible to applications and dynamic-link libraries (DLLs).

lpMaximumApplicationAddress

Pointer to the highest memory address accessible to applications and DLLs.

dwActiveProcessorMask

Specifies a mask representing the set of processors configured into the system. Bit 0 is processor 0; bit 31 is processor 31.

dwNumberOfProcessors

Specifies the number of processors in the system.

dwProcessorType

Specifies the type of processor in the system. This member is no longer relevant. Use the wProcessorArchitecture, wProcessorLevel, and wProcessorRevision members to determine the type of processor.

This member is one of the following values:

dwAllocationGranularity

Specifies the granularity with which virtual memory is allocated. For example, a VirtualAlloc request to allocate 1 byte will reserve an address space of dwAllocationGranularity bytes. This value was hard coded as 64K in the past, but other hardware architectures may require different values.

wProcessorLevel

Specifies the system’s architecture-dependent processor level.

If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel can be one of the following values:

Value Description
4 Intel 80486
5 Pentium

If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_MIPS, wProcessorLevel is of the form 00XX, where XX is an 8-bit implementation number (bits 8-15 of the PRId register). The member can be the following value:

Value Description
3 MIPS R3000
0004 MIPS R4000
  If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_PPC, wProcessorLevel is of the form XXXX, where XXXXis a 16-bit processor version number (the high-order 16 bits of the Processor Version Register).

wProcessorRevision

Specifies an architecture-dependent processor revision. The following table shows how the revision value is assembled for each type of processor architecture.

Value Description
Intel 80386 or 80486 A value of the form xxyz.
  If xx is equal to 0xFF, y - 0xA is the model number, and z is the stepping identifier. For example, an Intel 80486-D0 system returns 0xFFD0.
If xx is not equal to 0xFF, xx + ‘A’ is the stepping letter and yz is the minor stepping.
Intel Pentium, Cyrix, or NextGen 586 A value of the form xxyy, where xx is the model number and yy is the stepping. For example, a value of 0x0201 indicates Model 2, Stepping 1.
MIPS A value of the form 00xx, where xx is the 8-bit revision number of the processor (the low-order 8 bits of the PRId register).
ALPHA A value of the form xxyy, where xxyy is the low-order 16 bits of the processor revision number from the firmware. Display this value as follows:
    Model ‘A’+xx, Pass yy
PPC A value of the form xxyy, where xxyy is the low-order 16 bits of the Processor Version Register. Display this value as a fixed point number:
    xx.yy

See Also

GetSystemInfo