小甲鱼 发表于 2016-7-12 00:46:27

IsProcessorFeaturePresent

注:本文档由 百日维新 翻译,小甲鱼校对。

原文链接 -> 传送门

函数功能:

IsProcessorFeaturePresent 函数用于获取当前电脑是否支持指定处理器功能特性。。


API 函数原型:

注释:_In_ 说明该参数是输入的。
BOOL WINAPI IsProcessorFeaturePresent(
_In_ DWORD ProcessorFeature
);

参数解析:


参数 含义
ProcessorFeature指定待测的处理器功能特性,该参数可以是下表值之一:


值 含义
PF_ARM_64BIT_LOADSTORE_ATOMIC
(25) 是否 64 位加载/存储原子操作指令可用
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
(24) 是否分隔指令可用
PF_ARM_EXTERNAL_CACHE_AVAILABLE
(26) 是否外部缓存可用
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
(27) 是否浮点累乘累加指令可用
PF_ARM_VFP_32_REGISTERS_AVAILABLE
(18)1. VFP/Neon:存在 32 x 64 位寄存器组。
2. PF_ARM_VFP_32_REGISTERS_AVAILABLE 和 PF_ARM_VFP_EXTENDED_REGISTERS 意思相同
PF_3DNOW_INSTRUCTIONS_AVAILABLE
(7) 是否支持 3D-Now(3D No Waiting)指令可用
PF_CHANNELS_ENABLED
(16) 是否启用处理器通道
PF_COMPARE_EXCHANGE_DOUBLE
(2) 是否原子比较和交换操作(cmpxchg) 可用
PF_COMPARE_EXCHANGE128
(14)1. 是否原子比较和 128 位交换操作(cmpxchg16b) 可用
2. Windows Server 2003 和 Windows XP/2000:不支持该功能特性
PF_COMPARE64_EXCHANGE128
(15)1. 是否支持原子 64 位比较和 128 位交换操作(cmpxchg16b) 可用
2. Windows Server 2003 和 Windows XP/2000:不支持该功能特性
PF_FASTFAIL_AVAILABLE
(23) 是否“快速失败”机制可用
PF_FLOATING_POINT_EMULATED
(1)1. 检测是否使用了软件模拟器模拟浮点操作
2. 如果函数返回非 0,则使用了浮点模拟操作;否则,返回零
PF_FLOATING_POINT_PRECISION_ERRATA
(0)在奔腾处理器上,很少情况下发生浮点精度误差
PF_MMX_INSTRUCTIONS_AVAILABLE
(3) 是否多媒体增强指令集(MMX,Multi Media Extension) 可用
PF_NX_ENABLED
(12)1. 数据执行保护是否启用
2. Windows XP/2000:Windows XP SP2 和 Windows Server 2003 SP1 之前的 Windows 版本不支持该特性
PF_PAE_ENABLED
(9)1. 处理器是否启用物理地址扩展。更多信息,参见 Physical Address Extension
2. 检测该特性时,所有的 64 位架构处理器总是返回非 0
PF_RDTSC_INSTRUCTION_AVAILABLE
(8) 是否 RDTSC 指令可用
PF_RDWRFSGSBASE_AVAILABLE
(22) 是否 RDFSBASE,RDGSBASE,WRFSBASE 和 WRGSBASE 指令可用
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
(20) 硬件是否支持二级地址转换
PF_SSE3_INSTRUCTIONS_AVAILABLE
(13)1. 是否 SSE3 (Streaming SIMD Extensions III)指令集可用
2. Windows Server 2003 和 Windows XP/2000:不支持该功能特性
PF_VIRT_FIRMWARE_ENABLED
(21) 固件中是否启用虚拟化
PF_XMMI_INSTRUCTIONS_AVAILABLE
(6) 是否 SSE(Streaming SIMD Extensions)指令集可用
PF_XMMI64_INSTRUCTIONS_AVAILABLE
(10)1. 是否 SSE2(Streaming SIMD Extensions II)指令集可用
2. Windows 2000:不支持该功能特性
PF_XSAVE_ENABLED
(17)1. 是否处理器实现 XSAVE 和 XRSTOR 指令
2. Windows Server 2008, Windows Vista, Windows Server 2003 和 Windows XP/2000:Windows 7 和 Windows Server 2008 R2之后的版本支持该功能特性



返回值:

1. 如果支持该功能特性,返回值是非 0;

2. 如果不支持该功能特性,返回值是 0;

3. 如果硬件抽象层(HAL,Hardware Abstraction Layer)不支持检测该功能特性,那么不管硬件是否支持该功能特性,返回值也是 0。


需求:


Minimum supported client Windows 2000 专业版 [桌面应用程序 | Windows 商店应用程序]
Minimum supported server Windows 2000 服务器版 [桌面应用程序 | Windows 商店应用程序]
Minimum supported phone Windows Phone 8
Header Winbase.h (包含于 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

页: [1]
查看完整版本: IsProcessorFeaturePresent