获取系统硬件信息

硬件系统信息结构定义:

typedef struct _SYSTEM_INFO {

union {

DWORD dwOemId; // 这个成员已经过时,留在此处只为兼容以前的代码

struct {

WORD wProcessorArchitecture; // PROCESSOR_ARCHITECTURE_AMD64 x64 (AMD or Intel)

// PROCESSOR_ARCHITECTURE_IA64 Intel Itanium

// PROCESSOR_ARCHITECTURE_INTEL x86

// PROCESSOR_ARCHITECTURE_UNKNOWN Unknown architecture

WORD wReserved; // 保留字段

} ;

} ;

DWORD dwPageSize; // 页面大小

LPVOID lpMinimumApplicationAddress; // 应用程序可使用最低内存的地址

LPVOID lpMaximumApplicationAddress; // 应用程序可使用最高内存的地址

DWORD_PTR dwActiveProcessorMask; // 系统CPU掩码

DWORD dwNumberOfProcessors; // CPU个数

DWORD dwProcessorType; // CPU类型,过时了的成员,留在此处只为兼容

DWORD dwAllocationGranularity; // 可分配的虚拟内存起始地址粒度

WORD wProcessorLevel; // 结构无关处理器级别

WORD wProcessorRevision; // 结构无关处理器版本

}SYSTEM_INFO;

获取系统硬件信息代码:

#include <windows.h>

#include <stdio.h>

#pragma comment(lib, "user32.lib")

void main()

{

SYSTEM_INFO siSysInfo;

GetSystemInfo(&siSysInfo);

// 显示SYSTEM_INFO结构的内容

printf("硬件信息: /n");

//printf(" OEM ID: %u/n", siSysInfo.dwOemId);

// CPU数量

printf("CPU个数: %u/n", siSysInfo.dwNumberOfProcessors);

// 页面大小

printf("页面大小: %u/n", siSysInfo.dwPageSize);

// CPU型号

printf("CPU型号: %u/n", siSysInfo.dwProcessorType);

// 应用程序最低可使用地址

printf("最低可用地址: %p/n", siSysInfo.lpMinimumApplicationAddress);

// 应用程序最高可使用地址

printf("最高可用地址: %p/n", siSysInfo.lpMaximumApplicationAddress);

// 活跃CPU掩码

printf("活跃CPU掩码: %u/n", siSysInfo.dwActiveProcessorMask);

}

结果:

硬件信息:

CPU个数: 1

页面大小: 4096

CPU型号: 586

最低可用地址: 00010000

最高可用地址: 7FFEFFFF

活跃CPU掩码: 1

可见在这个系统上应用程序最多可以使用的内存是1.9999G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值