WMIC的CPU别名返回一个名为ProcessorType的值,MSDN声明有6个可能的值:
1 (0x1) Other
2 (0x2) Unknown
3 (0x3) Central Processor
4 (0x4) Math Processor
5 (0x5) DSP Processor
6 (0x6) Video Processorhttp://msdn.microsoft.com/en-us/library/aa394373(v=vs.85).aspx
除3以外的任何类型的处理器是否可以作为主(或仅)处理器?我正在编写硬件哈希函数,除非缺少通用处理器,否则我不想包含专用处理器。
发布于 2014-05-24 12:35:58
听起来你是在要求保修。无法获得此信息,此信息不是由WMI或操作系统提供的。与许多WMI数据一样,这些数据来自驱动程序。芯片组驱动程序,总是由芯片组制造商、英特尔、AMD、NVidia等公司提供。它们可能会被系统集成商调整。然而,这是非常罕见的,在该行业的残酷定价只是不考虑商品。或者当他们的非标准查询结果使程序爆炸时,他们需要提供的支持。
所以99.99%的时间你只会得到一个结果。CPU只有3块。
这使得该属性完全无用,它没有提供足够的随机数据来使硬件哈希足够唯一。所以不包括它,问题解决了。
发布于 2014-05-24 12:57:57
您可以使用GetNativeSystemInfo (链接) API函数获取有关主处理器的一些信息。
void WINAPI GetNativeSystemInfo(
_Out_ LPSYSTEM_INFO lpSystemInfo
);它返回一个SYSTEM_INFO结构(链接)
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中包含以下信息
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显示处理器的供应商定义的修订号。
https://stackoverflow.com/questions/23194769
复制相似问题