获取cpu序列号的方法和注意事项

作者: admin 日期: 2016-08-17 19:55:17 人气: - 评论: 0

在windows下要获得cpu序列号,很多人都知道可以使用汇编指令cpuid来获取cpu的序列号,不过由于执行cpuid指令的时候获得的只是当前cpu的序列号,为了保证每次获得的cpu序列号一致可以使用

SetProcessAffinityMask 函数强制进程只在指定的cpu上运行,查看下MSDN,调用SetProcessAffinityMask 使用的句柄需要PROCESS_SET_INFORMATION权限,所以用下面的代码来限制进程执行的cpu

     /*指定线程在第1个cup上运行保证获得正确的cpuid*/

HANDLE h = OpenProcess(PROCESS_SET_INFORMATION,true,GetCurrentProcessId());

BOOL ret = SetProcessAffinityMask(h, 0x0001);

SetProcessAffinityMask的第二个参数也很有意思,是用二进制的第n位表示是否允许进程在第n个cpu上执行,从这点上猜测windows系统可以支持的cpu数量上限是32个?

相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0190秒, 内存占用1.82 MB, 访问数据库13次

闽ICP备15009223号-1