Fungsi IsProcessorFeaturePresent (processthreadsapi.h)

Menentukan apakah fitur prosesor yang ditentukan didukung oleh komputer saat ini.

Syntax

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Parameter-parameternya

[in] ProcessorFeature

Fitur prosesor yang akan diuji. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Meaning
PF_ARM_64BIT_LOADSTORE_ATOMIC
Dua puluh lima
Instruksi atom beban/penyimpanan 64-bit tersedia.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
24
Instruksi pembagian tersedia.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
Cache eksternal tersedia.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
Instruksi floating-point multiply-accumulate tersedia.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
VFP/Neon: Bank register 32 x 64bit hadir. Bendera ini memiliki arti yang sama dengan PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
Set instruksi 3D-Now tersedia.
PF_CHANNELS_ENABLED
16
Saluran prosesor diaktifkan.
PF_COMPARE_EXCHANGE_DOUBLE
2
Operasi perbandingan dan pertukaran atom (cmpxchg) tersedia.
PF_COMPARE_EXCHANGE128
14
Perbandingan atomik dan operasi 128-bit pertukaran (cmpxchg16b) tersedia.

Windows Server 2003 dan Windows XP/2000: Fitur ini tidak didukung.

PF_COMPARE64_EXCHANGE128
15
Perbandingan atom 64 dan operasi exchange 128-bit (cmp8xchg16) tersedia.

Windows Server 2003 dan Windows XP/2000: Fitur ini tidak didukung.

PF_FASTFAIL_AVAILABLE
23
_fastfail() tersedia.
PF_FLOATING_POINT_EMULATED
1
Operasi floating-point ditiru menggunakan emulator perangkat lunak.

Fungsi ini mengembalikan nilai bukan nol jika operasi floating-point ditiru; jika tidak, itu mengembalikan nol.

PF_FLOATING_POINT_PRECISION_ERRATA
0
Pada Pentium, kesalahan presisi floating-point dapat terjadi dalam keadaan langka.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
Set instruksi MMX tersedia.
PF_NX_ENABLED
12

Pencegahan eksekusi data diaktifkan.

Windows XP/2000: Fitur ini tidak didukung sampai Windows XP dengan SP2 dan Windows Server 2003 dengan SP1.

PF_PAE_ENABLED
9
Prosesor diaktifkan PAE. Untuk informasi selengkapnya, lihat Ekstensi Alamat Fisik.

Semua prosesor x64 selalu mengembalikan nilai bukan nol untuk fitur ini.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
Instruksi RDTSC tersedia.
PF_RDWRFSGSBASE_AVAILABLE
22
Instruksi RDFSBASE, RDGSBASE, WRFSBASE, dan WRGSBASE tersedia.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
Terjemahan Alamat Tingkat Kedua didukung oleh perangkat keras.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
Set instruksi SSE3 tersedia.

Windows Server 2003 dan Windows XP/2000: Fitur ini tidak didukung.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
Set instruksi SSSE3 tersedia.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
Set instruksi SSE4_1 tersedia.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
Set instruksi SSE4_2 tersedia.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
Set instruksi AVX tersedia.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
Set instruksi AVX2 tersedia.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
Set instruksi AVX512F tersedia.
PF_VIRT_FIRMWARE_ENABLED
21
Virtualisasi diaktifkan di firmware dan disediakan oleh sistem operasi.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
Set instruksi SSE tersedia.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
Set instruksi SSE2 tersedia.

Windows 2000: Fitur ini tidak didukung.

PF_XSAVE_ENABLED
17
Prosesor mengimplementasikan instruksi XSAVE dan XRSTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP/2000: Fitur ini tidak didukung hingga Windows 7 dan Windows Server 2008 R2.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Prosesor Arm ini mengimplementasikan set instruksi Arm v8.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Prosesor Arm ini mengimplementasikan instruksi kriptografi tambahan Arm v8 (misalnya, AES, SHA1 dan SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Prosesor Arm ini mengimplementasikan instruksi Arm v8 extra CRC32.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Prosesor Arm ini mengimplementasikan instruksi atom Arm v8.1 (misalnya, CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Prosesor Arm ini mengimplementasikan instruksi Arm v8.2 DP (misalnya, SDOT, UDOT). Fitur ini bersifat opsional dalam implementasi Arm v8.2 dan wajib dalam implementasi Arm v8.4.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
Prosesor Arm ini mengimplementasikan instruksi Arm v8.3 JSCVT (misalnya, FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Prosesor Arm ini mengimplementasikan instruksi Arm v8.3 LRCPC (misalnya, LDAPR). Perhatikan bahwa CPU Arm v8.2 tertentu dapat secara opsional mendukung instruksi LRCPC.
PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
46
Prosesor Arm ini mengimplementasikan instruksi SVE (Ekstensi Vektor Yang Dapat Diskalakan) (FEAT_SVE).
PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
47
Prosesor Arm ini mengimplementasikan instruksi SVE2 (FEAT_SVE2).
PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE
48
Prosesor Arm ini mengimplementasikan instruksi SVE2.1 (FEAT_SVE2p1).
PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE
49
Prosesor Arm ini mengimplementasikan instruksi SVE AES (FEAT_SVE_AES).
PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE
50
Prosesor Arm ini mengimplementasikan instruksi panjang perkalian polinomial SVE 128-bit (FEAT_SVE_PMULL128).
PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE
51
Prosesor Arm ini mengimplementasikan instruksi permute bit SVE (FEAT_SVE_BitPerm).
PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE
52
Prosesor Arm ini mengimplementasikan instruksi SVE BF16 (BFloat16) (FEAT_BF16).
PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE
53
Prosesor Arm ini mengimplementasikan instruksi SVE EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE
54
Prosesor Arm ini mengimplementasikan instruksi SVE B16B16 (FEAT_SVE_B16B16).
PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE
55
Prosesor Arm ini mengimplementasikan instruksi kriptografi SVE SHA-3 (FEAT_SVE_SHA3).
PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE
56
Prosesor Arm ini mengimplementasikan instruksi kriptografi SVE SM4 (FEAT_SVE_SM4).
PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE
57
Prosesor Arm ini mengimplementasikan instruksi SVE I8MM (Perkalian matriks Int8) (FEAT_I8MM).
PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE
58
Prosesor Arm ini mengimplementasikan instruksi SVE F32MM (FP32 matrix multiply) (FEAT_F32MM).
PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE
59
Prosesor Arm ini mengimplementasikan instruksi SVE F64MM (FP64 matrix multiply) (FEAT_F64MM).
PF_BMI2_INSTRUCTIONS_AVAILABLE
60
Prosesor x64 ini mengimplementasikan set instruksi BMI2.
PF_MOVDIR64B_INSTRUCTION_AVAILABLE
61
Prosesor x64 ini mengimplementasikan instruksi MOVDIR64B.
PF_ARM_LSE2_AVAILABLE
62
Prosesor Arm ini mengimplementasikan instruksi atom LSE2 (FEAT_LSE2).
PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
64
Prosesor Arm ini mengimplementasikan instruksi kriptografi SHA-3 (FEAT_SHA3).
PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
65
Prosesor Arm ini mengimplementasikan instruksi kriptografi SHA-512 (FEAT_SHA512).
PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE
66
Prosesor Arm ini mengimplementasikan instruksi NEON I8MM (perkalian matriks Int8) (FEAT_I8MM).
PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE
67
Prosesor Arm ini mengimplementasikan instruksi NEON FP16 (titik pecahan setengah presisi) (FEAT_FP16).
PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE
68
Prosesor Arm ini mengimplementasikan instruksi NEON BF16 (BFloat16) (FEAT_BF16).
PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE
69
Prosesor Arm ini mengimplementasikan instruksi NEON EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SME_INSTRUCTIONS_AVAILABLE
70
Prosesor Arm ini mengimplementasikan instruksi SME (Scalable Matrix Extension) (FEAT_SME).
PF_ARM_SME2_INSTRUCTIONS_AVAILABLE
71
Prosesor Arm ini mengimplementasikan instruksi SME2 (FEAT_SME2).
PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE
72
Prosesor Arm ini mengimplementasikan instruksi SME2.1 (FEAT_SME2p1).
PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE
73
Prosesor Arm ini mengimplementasikan instruksi SME2.2 (FEAT_SME2p2).
PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE
74
Prosesor Arm ini mengimplementasikan instruksi SVE AES saat dalam mode Streaming SVE (FEAT_SSVE_AES).
PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE
75
Prosesor Arm ini mengimplementasikan instruksi permute bit SVE saat dalam mode Streaming SVE (FEAT_SSVE_BitPerm).
PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE
76
Prosesor Arm ini mengimplementasikan instruksi SVE FMMLA (melebar, 4 arah, FP8 ke FP16) ketika dalam mode Streaming SVE (FEAT_SSVE_F8F16MM).
PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE
77
Prosesor Arm ini mengimplementasikan instruksi SVE FMMLA (melebar, 8 arah, FP8 ke FP32) ketika dalam mode Streaming SVE (FEAT_SSVE_F8F32MM).
PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE
78
Prosesor Arm ini mengimplementasikan instruksi FP8DOT2 SVE2 saat dalam mode Streaming SVE (FEAT_SSVE_FP8DOT2).
PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE
79
Prosesor Arm ini mengimplementasikan instruksi FP8DOT4 SVE2 saat dalam mode Streaming SVE (FEAT_SSVE_FP8DOT4).
PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE
80
Prosesor Arm ini mengimplementasikan instruksi SVE2 FP8FMA saat dalam mode Streaming SVE (FEAT_SSVE_FP8FMA).
PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE
81
Prosesor Arm ini mengimplementasikan instruksi SME F8F32 (FEAT_SME_F8F32).
PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE
82
Prosesor Arm ini mengimplementasikan instruksi SME F8F16 (FEAT_SME_F8F16).
PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE
83
Prosesor Arm ini mengimplementasikan instruksi SME F16F16 (FEAT_SME_F16F16).
PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE
84
Prosesor Arm ini mengimplementasikan instruksi SME B16B16 (FEAT_SME_B16B16).
PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE
85
Prosesor Arm ini mengimplementasikan instruksi SME F64F64 (FEAT_SME_F64F64).
PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE
86
Prosesor Arm ini mengimplementasikan instruksi I16I64 SME (FEAT_SME_I16I64).
PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE
87
Prosesor Arm ini mengimplementasikan instruksi SME LUTv2 (FEAT_SME_LUTv2).
PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE
88
Prosesor Arm ini mengimplementasikan SME FA64 (set instruksi AArch64 Penuh saat dalam mode Streaming SVE) (FEAT_SME_FA64).
PF_UMONITOR_INSTRUCTION_AVAILABLE
89
Prosesor x64 ini mengimplementasikan instruksi UMONITOR.

Mengembalikan nilai

Jika fitur didukung, nilai yang dikembalikan adalah nilai bukan nol.

Jika fitur tidak didukung, nilai yang dikembalikan adalah nol.

Jika HAL tidak mendukung deteksi fitur, apakah perangkat keras mendukung fitur atau tidak, nilai pengembalian juga nol.

Komentar

Dukungan untuk PF_SSSE3_INSTRUCTIONS_AVAILABLE melalui PF_AVX512F_INSTRUCTIONS_AVAILABLE ditambahkan di Windows SDK (19041) dan didukung oleh Windows 10, Versi 2004 (Pembaruan Mei 2020) atau yang lebih baru.

Dukungan untuk PF_ERMS_AVAILABLE, PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE, dan PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE ditambahkan di Windows SDK (20348) dan didukung oleh Windows 11 dan Windows Server 2022.

Definisi PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE ditambahkan di Windows SDK (22621) dan didukung oleh Windows 11, Versi 22H2.

Dukungan untuk PF_ARM_SVE_INSTRUCTIONS_AVAILABLE melalui PF_MOVDIR64B_INSTRUCTION_AVAILABLE dan PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE melalui PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE ditambahkan di Windows SDK (26100) dan didukung oleh Windows 11, versi 24H2 dan Windows Server 2025 atau yang lebih baru.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header processthreadsapi.h (termasuk Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

Lihat juga

Vertdll API tersedia di enklave VBS

Fungsi Informasi Sistem