VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo)
这个函数是用来获取系统信息的
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO;
SYSTEM_INFO为需要填充的结构体

dwPageSize:用于显示CPU的页面大小,在x86CPU上,这个值为4096,在Alpha CPU上,这个值为8192,在IA-64上,这个值为8192
在讲lpMinimumApplicationAddress之前,我们先看张图

应用程序可用的地址为用户方式的分区,对于windows98来说是0x00400000-0x7FFFFFFF,对于2GB方式的32位windows2000来说为0x00010000-0x7FFEFFFF,对于3GB方式的32位windows2000来说为0x00010000-0xBFFEFFFF,对于64位的windows2000用户方式分区就更大了,在这里lpMinimumApplicationAddress选择起始地址,lpMaximumApplicationAddress选择终止地址

lpMinimumApplicationAddress:如上对于windows98来说为0x00400000,对于windows2000来说为0x00010000

lpMaximumApplicationAddres:windows98为0x7FFFFFFF,windows2000为0x7FFEFFFF

dwAllocationGranularity:所有的windows平台的分配粒度都为64KB

dwOemId,wReserved已废弃

dwNumberOfProcessors:处理器的数目

dwActiveProcessorMask:位屏蔽,用于指明哪些CPU是可活动的,比如0x0000000000000003表明CPU0和CPU1可活动

dwProcessorType:只用于windows98,用于指明处理器的类型

详细要说的是这部分
wProcessorArchitecture,wProcessorLevel,wProcessRevision这部分是配合的
我就说下我收集到的资料
当wProcessorArchitecture为PROCESSOR_ARCHITECTURE_INTEL=0时
wProcessorLevel为3: CPU为80386
4:80486
5:Pentinum
15:Pentinum4
6:当wProcessorLevel为6时:
取wProcessorRevision的高字节
HIBYTE(wProcessorRevision)
1:Pentinum Pro
3,5:Pentinum II
6:Celeron
7,8,11:Pentinum III
9,13:Pentinum M
10:Pentinum Xeon
15:Core2 Duo

GetSystemInfo详解相关推荐

  1. 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解

    这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口 ...

  2. 完成端口(Completion Port)详解----- By PiggyXP(小猪)

    本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,终于决定开始动笔了,但愿还不算晚-.. 这篇文档我非常详细并且图文并 ...

  3. Socket模型详解

    Socket模型详解 两种I/O模式 一.选择模型 二.异步选择 三.事件选择 四.重叠I/O模型 五.完成端口模型 五种I/O模型的比较 两种I/O模式 1. 两种I/O模式 阻塞模式:执行I/O操 ...

  4. 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三 1-转

    完成端口(Completion Port)详解 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,终于决定开始动笔了, ...

  5. 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解

    2019独角兽企业重金招聘Python工程师标准>>> 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝 ...

  6. Windows API函数大全---附:windows运行命令详解

    1. API之网络函数             WNetAddConnection 创建同一个网络资源的永久性连接             WNetAddConnection2 创建同一个网络资源的连 ...

  7. (转载)完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三

    手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪) 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了, ...

  8. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  9. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

最新文章

  1. 排序算法(五):快速排序
  2. linux网络配置总结,linux中的网络配置命令的总结
  3. ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...
  4. zbb20171215 bootstrap 日期控件.rar
  5. [技術]如何合併 GridView 中的多個標題
  6. 华住:移动时代,自主可控的架构秘密
  7. 32获取外部中断状态_选中断还是轮询方式?深究其中的区别
  8. 遗传算法导论(转载)
  9. html论坛注册代码,Discuz!论坛代码大全和HTML代码大全 | 穆小刚营销博客
  10. html5兼容包,webpack4搭建现代Hybird-h5工程
  11. vue+element PC系统自适应
  12. webclient 爬虫bug
  13. Excel批量转置——录制会循环的宏
  14. led流水灯c语言数组程序,LED流水灯程序 一维数组写法
  15. Python序列(包括序列类型和常用操作)
  16. Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)
  17. 如何用木板做桥_用木板做桥 工具跟做家具的一样 大小跟办公桌差不多大 能承重 参加比赛 主要是承重 给个设计方案...
  18. Au 效果器详解:单频段压缩器
  19. Person ReID最新论文推荐
  20. Windows 编程中的数据类型(转自:维基百科)

热门文章

  1. 01-02istio架构概念了解
  2. java壁虎_壁虎JavaSE
  3. 壁虎书4 Training Models
  4. 万州二中2021高考成绩查询,万州二中2019年高考喜报(二)
  5. java程序员的消愁--毛不易
  6. 蒲慕明所长在中科院神经科学研究所历年年会上的讲话
  7. 特约专栏 | ASIL分解和应用
  8. JAVA语言的BUG?
  9. 机器学习 - 计算 Log-Sum-Exp
  10. 学点简单的Django之第一个Django程序