获取系统硬件信息

硬件系统信息结构定义:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值