首页
社区
课程
招聘
[原创]硬件信息获取系列--通过cpuid指令获取cpu的基本信息与扩展信息
发表于: 2016-12-8 22:14 11393

[原创]硬件信息获取系列--通过cpuid指令获取cpu的基本信息与扩展信息

2016-12-8 22:14
11393

有需求需要这部分资料 百度谷歌各种找 都不是很全 所以自己写吧

【原创】硬件信息获取系列--通过cpuid指令获取cpu的基本信息与扩展信息
【原创】硬件信息获取系列二--使用ATAPI获取硬盘信息


.h
typedef struct _EQUIPMENT_CPU {
char Constructor[100];//制造商
char Trademarks[100];//商标
char SerialNumber[100];//CPU序列号
}EQUIPMENT_CPU, *PEQUIPMENT_CPU;

union CpuFeaturesEcx {
ULONG32 all;
struct {
ULONG32 sse3 : 1; //! <[0]simd流技术扩展3(SSE3)
ULONG32 pclmulqdq : 1; //! <[1]PCLMULQDQ
ULONG32 dtes64 : 1; //! <[2]64位DS区域
ULONG32 monitor : 1; //! <[3]显示器/等
ULONG32 ds_cpl : 1; //! <[4]CPL合格的调试存储
ULONG32 vmx : 1; //! <[5]虚拟机技术
ULONG32 smx : 1; //! <[6]安全模式扩展
ULONG32 est : 1; //! <[7]增强型英特尔Speedstep技术
ULONG32 tm2 : 1; //! <[8]散热监控2
ULONG32 ssse3 : 1; //! <[9]附加simd流技术扩展3
ULONG32 cid : 1; //! <[10]L1上下文ID
ULONG32 sdbg : 1; //! <[11]IA32_DEBUG_INTERFACE MSR
ULONG32 fma : 1; //! <[12]使用YMM状态FMA扩展
ULONG32 cx16 : 1; //! <[13]CMPXCHG16B
ULONG32 xtpr : 1; //! <[14]xTPR更新控制
ULONG32 pdcm : 1; //! <[15]性能/调试能力MSR
ULONG32 reserved : 1; //! <[16]保留
ULONG32 pcid : 1; //! <[17]程序的上下文标识符
ULONG32 dca : 1; //! <[18]回迁从内存映射设备
ULONG32 sse4_1 : 1; //! <[19]SSE4.1
ULONG32 sse4_2 : 1; //! <[20]SSE4.2
ULONG32 x2_apic : 1; //! <[21]x2APIC功能
ULONG32 movbe : 1; //! <[22]MOVBE指令
ULONG32 popcnt : 1; //! <[23]POPCNT指令
ULONG32 reserved3 : 1; //! <[24]使用TSC期限一次性操作
ULONG32 aes : 1; //! <[25]AESNI指令
ULONG32 xsave : 1; //! <[26]XSAVE/XRSTOR功能
ULONG32 osxsave : 1; //! <[27]使XSETBV/XGETBV说明
ULONG32 avx : 1; //! <[28]AVX指令扩展
ULONG32 f16c : 1; //! <[29]16位浮点转换
ULONG32 rdrand : 1; //! <[30]RDRAND指令
ULONG32 not_used : 1; //! <[31]0(a.k.一。 HypervisorPresent)
} fields;
};

union CpuFeaturesEdx {
ULONG32 all;
struct {
ULONG32 fpu : 1; //! <[0]浮点单元的片上
ULONG32 vme : 1; //! <[1]虚拟8086模式增强
ULONG32 de : 1; //! <[2]调试扩展程序
ULONG32 pse : 1; //! <[3]页大小扩展
ULONG32 tsc : 1; //! <[4]时间戳计数器
ULONG32 msr : 1; //! <[5]RDMSR和WRMSR说明
ULONG32 mce : 1; //! <[7]机器检查异常
ULONG32 cx8 : 1; //! <[8]散热监控2
ULONG32 apic : 1; //! <[9]APIC片上
ULONG32 reserved1 : 1; //! <[10]保留
ULONG32 sep : 1; //! <[11]SYSENTER和SYSEXIT说明
ULONG32 mtrr : 1; //! <[12]内存范围寄存器
ULONG32 pge : 1; //! <[13]页全球位
ULONG32 mca : 1; //! <[14]机器检查架构
ULONG32 cmov : 1; //! <[15]有条件的移动指令
ULONG32 pat : 1; //! <[16]页属性表
ULONG32 pse36 : 1; //! <[17]36位页面大小扩展
ULONG32 psn : 1; //! <[18]处理器序列号
ULONG32 clfsh : 1; //! <[19]CLFLUSH指令
ULONG32 reserved2 : 1; //! <[20]保留
ULONG32 ds : 1; //! <[21]的调试存储
ULONG32 acpi : 1; //! <[22]TM和软件控制时钟
ULONG32 mmx : 1; //! <[23]英特尔MMX技术
ULONG32 fxsr : 1; //! <[24]FXSAVE和FXRSTOR说明
ULONG32 sse : 1; //! <[25]SSE
ULONG32 sse2 : 1; //! <[26]SSE2
ULONG32 ss : 1; //! <[27]自探听
ULONG32 htt : 1; //! <[28]保留的最大APIC id字段有效
ULONG32 tm : 1; //! <[29]散热监控
ULONG32 reserved3 : 1; //! <[30]保留
ULONG32 pbe : 1; //! <[31]挂起的分行符启用
} fields;
};


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 2
支持
分享
最新回复 (10)
雪    币: 222
活跃值: (1910)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
呵呵,楼主是个热心肠,顶贴支持一下。
2016-12-9 00:02
0
雪    币: 0
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
关注此贴
2016-12-9 09:03
0
雪    币: 2882
活跃值: (1279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
4
支持分享
2016-12-9 09:17
0
雪    币: 933
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
非常不错 MARK一下 以后可以用
2016-12-20 08:54
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2016-12-20 17:45
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
mark
2016-12-22 09:13
0
雪    币: 0
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
关注此贴,楼主辛苦
2017-1-23 13:49
0
雪    币: 296
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
刚好最近在书店翻了明日科技的vc++开发实例大全,里面也有例子,好像是在最后一章
2017-1-23 15:06
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不知道可不可以hook?如果可以的话那这个还是不能用来做注册码生成用
2017-1-23 15:09
0
雪    币: 284
活跃值: (250)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
NICE。非常给力
2017-1-23 16:24
0
游客
登录 | 注册 方可回帖
返回
//