首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WMI ProcessorType

WMI ProcessorType
EN

Stack Overflow用户
提问于 2014-04-21 09:43:12
回答 2查看 437关注 0票数 4

WMIC的CPU别名返回一个名为ProcessorType的值,MSDN声明有6个可能的值:

代码语言:javascript
复制
1 (0x1) Other
2 (0x2) Unknown
3 (0x3) Central Processor
4 (0x4) Math Processor
5 (0x5) DSP Processor
6 (0x6) Video Processor

http://msdn.microsoft.com/en-us/library/aa394373(v=vs.85).aspx

除3以外的任何类型的处理器是否可以作为主(或仅)处理器?我正在编写硬件哈希函数,除非缺少通用处理器,否则我不想包含专用处理器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-24 12:35:58

听起来你是在要求保修。无法获得此信息,此信息不是由WMI或操作系统提供的。与许多WMI数据一样,这些数据来自驱动程序。芯片组驱动程序,总是由芯片组制造商、英特尔、AMD、NVidia等公司提供。它们可能会被系统集成商调整。然而,这是非常罕见的,在该行业的残酷定价只是不考虑商品。或者当他们的非标准查询结果使程序爆炸时,他们需要提供的支持。

所以99.99%的时间你只会得到一个结果。CPU只有3块。

这使得该属性完全无用,它没有提供足够的随机数据来使硬件哈希足够唯一。所以不包括它,问题解决了。

票数 6
EN

Stack Overflow用户

发布于 2014-05-24 12:57:57

您可以使用GetNativeSystemInfo (链接) API函数获取有关主处理器的一些信息。

代码语言:javascript
复制
void WINAPI GetNativeSystemInfo(
  _Out_  LPSYSTEM_INFO lpSystemInfo
);

它返回一个SYSTEM_INFO结构(链接)

代码语言:javascript
复制
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;

此结构在成员dwProcessorType中包含以下信息

代码语言:javascript
复制
PROCESSOR_INTEL_386 (386)
PROCESSOR_INTEL_486 (486)
PROCESSOR_INTEL_PENTIUM (586)
PROCESSOR_INTEL_IA64 (2200)
PROCESSOR_AMD_X8664 (8664)
PROCESSOR_ARM (Reserved)

成员wProcessorLevel显示供应商定义的处理器级别,wProcessorRevision显示处理器的供应商定义的修订号。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23194769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档