SYSTEM_INFO (Windows Embedded CE 6.0)

1/6/2010

This structure contains information about the current computer system. This includes the processor type, page size, memory addresses, and OEM identifier.

Syntax

typedef struct _SYSTEM_INFO {
  union {
  DWORD dwOemId;
  struct {
    WORD wProcessorArchitecture;
    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
    Obsolete, do not use.
  • wProcessorArchitecture
    System processor architecture.

    The following list shows the possible values for this member:

    • PROCESSOR_ARCHITECTURE_INTEL
    • PROCESSOR_ARCHITECTURE_MIPS
    • PROCESSOR_ARCHITECTURE_UNKNOWN
    • PROCESSOR_ARCHITECTURE_SHX
    • PROCESSOR_ARCHITECTURE_ARM
  • wReserved
    Reserved for future use.
  • dwPageSize
    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 DLLs.
  • lpMaximumApplicationAddress
    Pointer to the highest memory address accessible to applications and DLLs.
  • dwActiveProcessorMask
    Mask representing the set of processors configured into the system. Bit 0 is processor 0; bit 31 is processor 31.
  • dwNumberOfProcessors
    Number of processors in the system.
  • dwProcessorType
    Type of processor in the system.

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

    The following list shows the possible values:

    • PROCESSOR_INTEL_386
    • PROCESSOR_INTEL_486
    • PROCESSOR_INTEL_PENTIUM
    • PROCESSOR_INTEL_PENTIUMII
    • PROCESSOR_MIPS_R4000
    • PROCESSOR_HITACHI_SH3
    • PROCESSOR_HITACHI_SH4
    • PROCESSOR_STRONGARM
    • PROCESSOR_ARM720
    • PROCESSOR_MIPS_R5000
    • PROCESSOR_SHx_SH3DSP
  • dwAllocationGranularity
    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 64 KB in the past, but other hardware architectures may require different values.

  • wProcessorLevel
    System architecture-dependent processor level.

    The following table shows that if wProcessorArchitecture is PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel can be one of the following values.

    Value Description

    4

    Intel 80486

    5

    Pentium

    The following table shows that if wProcessorArchitecture is PROCESSOR_ARCHITECTURE_ARM, wProcessorLevel can be one of the following values.

    Value Description

    4

    ARM version 4

    The following table shows that if wProcessorArchitecture is PROCESSOR_ARCHITECTURE_MIPS, wProcessorLevel can be one of the following values.

    Value Description

    3

    MIPS R3000

    4

    MIPS R4000

    5

    MIPS R5000

    The following table shows that if wProcessorArchitecture is PROCESSOR_ARCHITECTURE_SHX, wProcessorLevel can be one of the following values.

    Value Description

    3

    SH3 or SH3-DSP

    4

    SH4

  • 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 numberand 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).

    SHx

    The wProcessRevision is always set to 0.

    ARM

    Is a value from 1 to 16. Consult your ARM CPU manual.

Requirements

Header winbase.h
Windows Embedded CE Windows CE 1.0 and later

See Also

Reference

System Management Structures
GetSystemInfo
VirtualAlloc