以编程方式(在Windows中使用C ++)检测硬件附近有CPU和GPU(在同一芯片上)的最佳方法是什么?
答案 0 :(得分:0)
您可以使用GetNativeSystemInfo
(link) API函数获取有关主处理器的一些信息。它不会告诉它是否是SOC,但它可能是一个起点。我认为它告诉我什么时候不一个SOC,但我没有在普通PC /笔记本电脑上的其他平台上试过它。
void WINAPI GetNativeSystemInfo(
_Out_ LPSYSTEM_INFO lpSystemInfo
);
它会返回SYSTEM_INFO
结构(link)
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
显示供应商定义的处理器修订版号。
这个答案主要是我的另一个答案的副本。