The SYSTEM_INFO structure contains information about the current computer system. This includes the architecture and type of the processor, the number of processors in the system, the page size, and other such information.
typedef struct _SYSTEM_INFO { // sinf 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;
Windows 95: The system always sets this member to zero, the value
defined for PROCESSOR_ARCHITECTURE_INTEL.
Value | |
PROCESSOR_ARCHITECTURE_INTEL | |
Windows NT only: PROCESSOR_ARCHITECTURE_MIPS | |
Windows NT only: PROCESSOR_ARCHITECTURE_ALPHA | |
Windows NT only: PROCESSOR_ARCHITECTURE_PPC | |
Windows NT only: PROCESSOR_ARCHITECTURE_UNKNOWN |
Specifies the type of processor in the system.
This member is one of the following values:
Value | |
PROCESSOR_INTEL_386 | |
PROCESSOR_INTEL_486 | |
PROCESSOR_INTEL_PENTIUM | |
Windows NT only: PROCESSOR_MIPS_R4000 | |
Windows NT only: PROCESSOR_ALPHA_21064 |
Windows NT: Specifies the system’s architecture-dependent processor level.
If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_INTEL, wProcessorLevel can be one of the following values:
Value |
Meaning |
3 |
Intel 80386 |
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 |
Meaning |
0004 |
MIPS R4000 |
If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_ALPHA, wProcessorLevel is of the form xxxx, where xxxx is a 16-bit processor version number (the low-order 16 bits of a version number from the firmware). The member can be one of the following values:
Decimal Value |
Meaning |
21064 |
Alpha 21064 |
21066 |
Alpha 21066 |
21164 |
Alpha 21164 |
If wProcessorArchitecture is PROCESSOR_ARCHITECTURE_PPC, wProcessorLevel is of the form xxxx, where xxxx is a 16-bit processor version number (the high-order 16 bits of the Processor Version Register). The member can be one of the following values:
Decimal Value |
Meaning |
1 |
PPC 601 |
3 |
PPC 603 |
4 |
PPC 604 |
6 |
PPC 603+ |
9 |
PPC 604+ |
20 |
PPC 620 |
Windows NT: Specifies an architecture-dependent processor revision. The following table shows how the revision value is assembled for each type of processor architecture.
Processor Architecture |
Value |
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, |
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 |
Beginning with Windows NT 3.51 and the initial release of Windows 95, the SYSTEM_INFO structure has changed as follows:
GetSystemInfo, MapViewOfFile, MapViewOfFileEx