确定处理器支持哪些指令

Adu*_*cci 2 .net c# wmi

CPU-Z能够确定处理器支持的指令.例如,以下链接显示以下说明:

MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, EM64T

有没有办法做到这一点使用.NET,WMI或者一些其他技术?

San*_*nen 5

kernel32.dll你有功能IsProcessorFeaturePresent你可以的PInvoke.

编辑
关于EM64T扩展指令集,这仅适用于x64平台,因此您可以通过WMI检查存在哪种类型的CPU:

public static bool IsEM64TSupported()
{
  ManagementObject mo;
  mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
  ushort i = (ushort) mo["Architecture"];

  return i == 9;
}
Run Code Online (Sandbox Code Playgroud)

但由于EM64T指令在32位操作系统中不可用,您还需要检查它.