SYSTEM_INFO结构包含有关当前计算机系统的信息。这包括处理器的架构和类型,系统中的处理器数量,页面大小以及其他此类信息。
typedef struct _SYSTEM_INFO { //类
工会{
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;
会员
dwOemId
保留与旧版Windows NT兼容的过时成员。从Windows NT 3.51和Windows 95的初始版本开始,使用联合的wProcessorArchitecture分支。
Windows 95:系统始终将此成员设置为零,为PROCESSOR_ARCHITECTURE_INTEL定义的值。
wProcessorArchitecture
指定系统的处理器架构。该值可以是以下值之一:
值 | |
PROCESSOR_ARCHITECTURE_INTEL | |
仅Windows NT: PROCESSOR_ARCHITECTURE_MIPS | |
仅Windows NT: PROCESSOR_ARCHITECTURE_ALPHA | |
仅Windows NT: PROCESSOR_ARCHITECTURE_PPC | |
仅Windows NT: PROCESSOR_ARCHITECTURE_UNKNOWN |
wReserved
留作将来使用。
dwPageSize
指定页面大小和页面保护和承诺的粒度。这是VirtualAlloc功能使用的页面大小。
lpMinimumApplicationAddress
指向应用程序和动态链接库(DLL)可访问的最低内存地址。
lpMaximumApplicationAddress
指向应用程序和DLL可访问的最高内存地址。
dwActiveProcessorMask
指定一个掩码,表示配置到系统中的一组处理器。位0是处理器0;位31是处理器31。
dwNumberOfProcessors
指定系统中的处理器数量。
dwProcessorType
Windows 95:
指定系统中的处理器类型。
Windows NT:
该成员不再相关,但与Windows 95和以前版本的Windows NT保持兼容。使用wProcessorArchitecture,wProcessorLevel和wProcessorRevision成员确定处理器的类型。
该成员是以下值之一:
值 | |
PROCESSOR_INTEL_386 | |
PROCESSOR_INTEL_486 | |
PROCESSOR_INTEL_PENTIUM | |
仅Windows NT: PROCESSOR_MIPS_R4000 | |
仅Windows NT: PROCESSOR_ALPHA_21064 |
dwAllocationGranularity
指定分配虚拟内存的粒度。例如,分配1个字节的VirtualAlloc请求将保留dwAllocationGranularity个字节的地址空间。该值在过去硬编码为64K,但其他硬件架构可能需要不同的值。
wProcessorLevel
Windows 95:此成员未使用。
Windows NT:指定系统与架构相关的处理器级别。
如果wProcessorArchitecture为PROCESSOR_ARCHITECTURE_INTEL,则wProcessorLevel可以是以下值之一:
值 | 含义 |
3 | 英特尔80386 |
4 | 英特尔80486 |
5 | 奔腾 |
如果wProcessorArchitecture为PROCESSOR_ARCHITECTURE_MIPS,wProcessorLevel的格式为00 【xx】,其中【xx】是8位实现号(PRId寄存器的8-15位)。该成员可以是以下值:
值 | 含义 |
0004 | MIPS R4000 |
如果wProcessorArchitecture为PROCESSOR_ARCHITECTURE_ALPHA,wProcessorLevel的格式为【XXXX】,其中【XXXX】是16位处理器版本号(固件版本号的低位16位)。该成员可以是以下值之一:
十进制值 | 含义 |
21064 | 阿尔法21064 |
21066 | 阿尔法21066 |
21164 | 阿尔法21164 |
如果wProcessorArchitecture为PROCESSOR_ARCHITECTURE_PPC,则wProcessorLevel的格式为【XXXX】,其中【XXXX】是16位处理器版本号(处理器版本寄存器的高位16位)。该成员可以是以下值之一:
十进制值 | 含义 |
1 | PPC 601 |
3 | PPC 603 |
4 | PPC 604 |
6 | PPC 603+ |
9 | PPC 604+ |
20 | PPC 620 |
wProcessorRevision
Windows 95:此成员未使用。
Windows NT:指定与架构相关的处理器版本。下表显示了每种类型的处理器架构如何组装修订版本值。
处理器架构 | 值 |
英特尔80386或80486 | 【xxyz】形式的值。 如果【xx】等于0xFF,则【y】 - 0xA是型号,【z】是步进标识符。例如,Intel 80486-D0系统返回0xFFD0。 如果【xx】不等于0xFF,则【xx】 +'A'是步进字母,【yz】是次要步进。 |
英特尔奔腾, Cyrix或 NextGen 586 | 【XXYY】的形式,其中【xx】是型号【】和【yy】的值是步进。例如,值0x0201表示模型2,步骤1。 |
MIPS | 形式00 【xx】的值,其中【xx】是处理器的8位版本号(PRId寄存器的低8位)。 |
ALPHA | 形式【XXYY】的值,其中【XXYY】是来自固件的处理器版本号的低位16位。显示该值如下: 型号'A'+ 【xx】,通行证【yy】 |
PPC | 【XXYY】形式的值,其中【XXYY】是处理器版本寄存器的低位16位。将此值显示为固定点数: 【xx】.【yy】 |
备注
从Windows NT 3.51和Windows 95的初始版本开始,SYSTEM_INFO结构已更改如下:
* dwOemId成员已更改为联盟。该工会支持一种新的方式来描述Windows NT使用的处理器架构,同时保持与Windows 95和以前版本的Windows NT的兼容性。
* dwProcessorType成员现在已经在Windows NT上过时了。它仍然在Windows 95上使用。
*结构结尾的以前保留的DWORD??成员已被wProcessorLevel和wProcessorRevision成员替换。Windows 95不使用这些成员。
也可以看看