GetSystemInfo详解
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详解相关推荐
- 手把手教你玩转SOCKET模型:完成端口(Completion Port)详解
这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口 ...
- 完成端口(Completion Port)详解----- By PiggyXP(小猪)
本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,终于决定开始动笔了,但愿还不算晚-.. 这篇文档我非常详细并且图文并 ...
- Socket模型详解
Socket模型详解 两种I/O模式 一.选择模型 二.异步选择 三.事件选择 四.重叠I/O模型 五.完成端口模型 五种I/O模型的比较 两种I/O模式 1. 两种I/O模式 阻塞模式:执行I/O操 ...
- 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三 1-转
完成端口(Completion Port)详解 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,终于决定开始动笔了, ...
- 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解
2019独角兽企业重金招聘Python工程师标准>>> 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝 ...
- Windows API函数大全---附:windows运行命令详解
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连 ...
- (转载)完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪) 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了, ...
- 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)
首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...
- JVM年轻代,老年代,永久代详解
秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...
最新文章
- 排序算法(五):快速排序
- linux网络配置总结,linux中的网络配置命令的总结
- ACM 中常用的算法有哪些? 2014-08-21 21:15 40人阅读 评论(0) 收藏...
- zbb20171215 bootstrap 日期控件.rar
- [技術]如何合併 GridView 中的多個標題
- 华住:移动时代,自主可控的架构秘密
- 32获取外部中断状态_选中断还是轮询方式?深究其中的区别
- 遗传算法导论(转载)
- html论坛注册代码,Discuz!论坛代码大全和HTML代码大全 | 穆小刚营销博客
- html5兼容包,webpack4搭建现代Hybird-h5工程
- vue+element PC系统自适应
- webclient 爬虫bug
- Excel批量转置——录制会循环的宏
- led流水灯c语言数组程序,LED流水灯程序 一维数组写法
- Python序列(包括序列类型和常用操作)
- Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)
- 如何用木板做桥_用木板做桥 工具跟做家具的一样 大小跟办公桌差不多大 能承重 参加比赛 主要是承重 给个设计方案...
- Au 效果器详解:单频段压缩器
- Person ReID最新论文推荐
- Windows 编程中的数据类型(转自:维基百科)