IsProcessorFeaturePresent 函式 (processthreadsapi.h)

判斷目前計算機是否支援指定的處理器功能。

語法

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

參數

[in] 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
VFP/Neon:32 x 64 位緩存器銀行存在。 此旗標的意義與 PF_ARM_VFP_EXTENDED_REGISTERS相同。
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
3D-Now 指令集可供使用。
PF_CHANNELS_ENABLED
16
處理器通道已啟用。
PF_COMPARE_EXCHANGE_DOUBLE
2
(cmpxchg) 提供不可部分完成的比較和交換作業。
PF_COMPARE_EXCHANGE128
14
(cmpxchg16b) 提供不可部分完成的比較和交換 128 位作業。

Windows Server 2003 和 Windows XP/2000: 不支援此功能。

PF_COMPARE64_EXCHANGE128
15
可以使用不可部分完成的比較 64 和 exchange 128 位作業, (cmp8xchg16) 。

Windows Server 2003 和 Windows XP/2000: 不支援此功能。

PF_FASTFAIL_AVAILABLE
23
_fastfail () 可供使用。
PF_FLOATING_POINT_EMULATED
1
浮點運算是使用軟體模擬器模擬。

如果模擬浮點運算,此函式會傳回非零值;否則,它會傳回零。

PF_FLOATING_POINT_PRECISION_ERRATA
0
在 Pentium 上,浮點精確度錯誤可能發生在罕見的情況下。
PF_MMX_INSTRUCTIONS_AVAILABLE
3
MMX 指令集可供使用。
PF_NX_ENABLED
12

已啟用數據執行防護

Windows XP/2000: 在 WINDOWS XP SP2 和 Windows Server 2003 SP1 之前,不支援此功能。

PF_PAE_ENABLED
9
處理器已啟用PAE。 如需詳細資訊,請參閱 實體位址延伸模組

所有 x64 處理器一律會傳回此功能的非零值。

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
SSE3 指令集可供使用。

Windows Server 2003 和 Windows XP/2000: 不支援此功能。

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
SSSE3 指令集可供使用。
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
SSE4_1指令集可供使用。
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
SSE4_2指令集可供使用。
PF_AVX_INSTRUCTIONS_AVAILABLE
39
AVX 指令集可供使用。
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
AVX2 指令集可供使用。
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
AVX512F指令集可供使用。
PF_VIRT_FIRMWARE_ENABLED
21
虛擬化會在韌體中啟用,並可供操作系統使用。
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
SSE 指令集可供使用。
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
SSE2 指令集可供使用。

Windows 2000: 不支援此功能。

PF_XSAVE_ENABLED
17
處理器會實作 XSAVE 和 XRSTOR 指令。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP/2000: 在 Windows 7 和 Windows Server 2008 R2 之前,不支援此功能。

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
此 Arm 處理器會實作 Arm v8 指令集。
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
此 Arm 處理器會實作 Arm v8 額外的密碼編譯指示 (,例如 AES、SHA1 和 SHA2) 。
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
此 Arm 處理器會實作 Arm v8 額外的 CRC32 指示。
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
此 Arm 處理器會實作 Arm v8.1 不可部分完成的指令 (,例如 CAS、SWP) 。
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
此 Arm 處理器會實作 Arm v8.2 DP 指令 (,例如 SDOT、UDOT) 。 這項功能在 Arm v8.2 實作中是選擇性的,在 Arm v8.4 實作中為必要專案。
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
此 Arm 處理器會實作 Arm v8.3 JSCVT 指令 (,例如 FJCVTZS) 。
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
此 Arm 處理器會實作 Arm v8.3 LRCPC 指令 (,例如 LDAPR) 。 請注意,某些 Arm v8.2 CPU 可以選擇性地支援 LRCPC 指示。

傳回值

如果支援此功能,則傳回值為非零值。

如果不支援此功能,則傳回值為零。

如果 HAL 不支援偵測功能,無論硬體是否支援此功能,傳回值也是零。

備註

PF_SSSE3_INSTRUCTIONS_AVAILABLEPF_AVX512F_INSTRUCTIONS_AVAILABLEWindows SDK (19041) 新增了) 的支援,Windows 10 且支援版本 2004 (2020 年 5 月更新) 或更新版本。

PF_ERMS_AVAILABLEWindows SDK (20348) 中新增了 、 PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEPF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE 的支援,且由 Windows 11 和 Windows Server 2022 支援。

定義PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE已新增至 Windows SDK (22621) ,且 Windows 11 版本 22H2 支援。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 processthreadsapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

VBS 記憶體保護區中可用的 Vertdll API

系統資訊函式