Freigeben über


IsProcessorFeaturePresent-Funktion (processthreadsapi.h)

Bestimmt, ob das angegebene Prozessorfeature vom aktuellen Computer unterstützt wird.

Syntax

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Die Parameter

[in] ProcessorFeature

Das zu testende Prozessorfeature. Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
PF_ARM_64BIT_LOADSTORE_ATOMIC
25
Die 64-Bit-Lade-/Speicher-Atomanweisungen sind verfügbar.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
24
Die Trennanweisungen sind verfügbar.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
Der externe Cache ist verfügbar.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
Die Gleitkomma-Anweisung mit multiplizierter Multikumulation ist verfügbar.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
Die VFP/Neon: 32 x 64bit Registerbank ist vorhanden. Diese Kennzeichnung hat die gleiche Bedeutung wie PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
Der 3D-Now-Anweisungssatz ist verfügbar.
PF_CHANNELS_ENABLED
16
Die Prozessorkanäle sind aktiviert.
PF_COMPARE_EXCHANGE_DOUBLE
2
Der Atomabgleich und Der Austauschvorgang (cmpxchg) ist verfügbar.
PF_COMPARE_EXCHANGE128
14
Der Atomabgleich und der Austausch von 128-Bit-Vorgängen (cmpxchg16b) sind verfügbar.

Windows Server 2003 und Windows XP/2000: Dieses Feature wird nicht unterstützt.

PF_COMPARE64_EXCHANGE128
15
Der Atomabgleich 64 und der Austausch 128-Bit-Operation (cmp8xchg16) ist verfügbar.

Windows Server 2003 und Windows XP/2000: Dieses Feature wird nicht unterstützt.

PF_FASTFAIL_AVAILABLE
23
_fastfail() ist verfügbar.
PF_FLOATING_POINT_EMULATED
1
Gleitkommavorgänge werden mithilfe eines Softwareemulators emuliert.

Diese Funktion gibt einen Wert ungleich Null zurück, wenn Gleitkommavorgänge emuliert werden. andernfalls wird Null zurückgegeben.

PF_FLOATING_POINT_PRECISION_ERRATA
0
Auf einem Float-Prozessor kann ein Gleitkommagenauigkeitsfehler in seltenen Fällen auftreten.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
Der MMX-Anweisungssatz ist verfügbar.
PF_NX_ENABLED
12

Die Datenausführungsverhinderung ist aktiviert.

Windows XP/2000: Dieses Feature wird erst unterstützt, wenn Windows XP mit SP2 und Windows Server 2003 mit SP1 unterstützt wird.

PF_PAE_ENABLED
9
Der Prozessor ist PAE-fähig. Weitere Informationen finden Sie unter "Physische Adresserweiterung".

Alle x64-Prozessoren geben immer einen Wert ungleich Null für dieses Feature zurück.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
Die RDTSC-Anweisung ist verfügbar.
PF_RDWRFSGSBASE_AVAILABLE
22
RDFSBASE-, RDGSBASE-, WRFSBASE- und WRGSBASE-Anweisungen sind verfügbar.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
Die Second Level Address Translation wird von der Hardware unterstützt.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
Der SSE3-Anweisungssatz ist verfügbar.

Windows Server 2003 und Windows XP/2000: Dieses Feature wird nicht unterstützt.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
Der SSSE3-Anweisungssatz ist verfügbar.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
Der SSE4_1 Anweisungssatz ist verfügbar.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
Der SSE4_2 Anweisungssatz ist verfügbar.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
Der AVX-Anweisungssatz ist verfügbar.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
Der AVX2-Anweisungssatz ist verfügbar.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
Der AVX512F Anweisungssatz ist verfügbar.
PF_VIRT_FIRMWARE_ENABLED
21
Die Virtualisierung ist in der Firmware aktiviert und wird vom Betriebssystem zur Verfügung gestellt.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
Der SSE-Anweisungssatz ist verfügbar.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
Der SSE2-Anweisungssatz ist verfügbar.

Windows 2000: Dieses Feature wird nicht unterstützt.

PF_XSAVE_ENABLED
17
Der Prozessor implementiert die XSAVE- und XRSTOR-Anweisungen.

Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP/2000: Dieses Feature wird erst unter Windows 7 und Windows Server 2008 R2 unterstützt.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Dieser Arm-Prozessor implementiert den Arm v8-Anweisungensatz.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Dieser Arm-Prozessor implementiert die zusätzlichen kryptografischen Anweisungen von Arm v8 (z. B. AES, SHA1 und SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Dieser Arm-Prozessor implementiert die Zusätzlichen CRC32-Anweisungen von Arm v8.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Dieser Arm-Prozessor implementiert die Atomanweisungen arm v8.1 (z. B. CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Dieser Arm-Prozessor implementiert die Arm v8.2 DP-Anweisungen (z. B. SDOT, UDOT). Dieses Feature ist in Arm v8.2-Implementierungen optional und in Arm v8.4-Implementierungen obligatorisch.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
Dieser Arm-Prozessor implementiert die Arm v8.3 JSCVT-Anweisungen (z. B. FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Dieser Arm-Prozessor implementiert die Arm v8.3 LRCPC-Anweisungen (z. B. LDAPR). Beachten Sie, dass bestimmte Arm v8.2-CPUs optional die LRCPC-Anweisungen unterstützen können.
PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
46
Dieser Arm-Prozessor implementiert die Anweisungen für SVE (Scalable Vector Extension) (FEAT_SVE).
PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
47
Dieser Arm-Prozessor implementiert die SVE2-Anweisungen (FEAT_SVE2).
PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE
48
Dieser Arm-Prozessor implementiert die SVE2.1-Anweisungen (FEAT_SVE2p1).
PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE
49
Dieser Arm-Prozessor implementiert die SVE AES-Anweisungen (FEAT_SVE_AES).
PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE
50
Dieser Arm-Prozessor implementiert die SVE 128-Bit-Polynomie multiplizieren lange Anweisungen (FEAT_SVE_PMULL128).
PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE
51
Dieser Arm-Prozessor implementiert die SVE-Bit-Permuteanweisungen (FEAT_SVE_BitPerm).
PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE
52
Dieser Arm-Prozessor implementiert die Anweisungen SVE BF16 (BFloat16) (FEAT_BF16).
PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE
53
Dieser Arm-Prozessor implementiert die Anweisungen SVE EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE
54
Dieser Arm-Prozessor implementiert die SVE B16B16-Anweisungen (FEAT_SVE_B16B16).
PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE
55
Dieser Arm-Prozessor implementiert die kryptografischen Anweisungen von SVE SHA-3 (FEAT_SVE_SHA3).
PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE
56
Dieser Arm-Prozessor implementiert die kryptografischen SVE SM4-Anweisungen (FEAT_SVE_SM4).
PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE
57
Dieser Arm-Prozessor implementiert die Anweisungen SVE I8MM (Int8 Matrix multiplizieren) (FEAT_I8MM).
PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE
58
Dieser Arm-Prozessor implementiert die SVE F32MM -Anweisungen (FP32-Matrix multiplizieren) (FEAT_F32MM).
PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE
59
Dieser Arm-Prozessor implementiert die SVE F64MM (FP64 Matrix multiplizieren) Anweisungen (FEAT_F64MM).
PF_BMI2_INSTRUCTIONS_AVAILABLE
60
Dieser x64-Prozessor implementiert den BMI2-Anweisungssatz.
PF_MOVDIR64B_INSTRUCTION_AVAILABLE
61
Dieser x64-Prozessor implementiert die MOVDIR64B Anweisung.
PF_ARM_LSE2_AVAILABLE
62
Dieser Arm-Prozessor implementiert die LSE2-Atomanweisungen (FEAT_LSE2).
PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
64
Dieser Arm-Prozessor implementiert die SHA-3-Kryptografieanweisungen (FEAT_SHA3).
PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
65
Dieser Arm-Prozessor implementiert die kryptografischen SHA-512-Anweisungen (FEAT_SHA512).
PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE
66
Dieser Arm-Prozessor implementiert die I8MM (Int8 Matrix multiplizieren) NEON-Anweisungen (FEAT_I8MM).
PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE
67
Dieser Arm-Prozessor implementiert die FP16-Anweisungen (Gleitkomma mit halber Genauigkeit) NEON-Anweisungen (FEAT_FP16).
PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE
68
Dieser Arm-Prozessor implementiert die BF16 (BFloat16) NEON-Anweisungen (FEAT_BF16).
PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE
69
Dieser Arm-Prozessor implementiert die EBF16 (Extended BFloat16) NEON-Anweisungen (FEAT_EBF16).
PF_ARM_SME_INSTRUCTIONS_AVAILABLE
70
Dieser Arm-Prozessor implementiert die Anweisungen für KMU (Scalable Matrix Extension) (FEAT_SME).
PF_ARM_SME2_INSTRUCTIONS_AVAILABLE
71
Dieser Arm-Prozessor implementiert die SME2-Anweisungen (FEAT_SME2).
PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE
72
Dieser Arm-Prozessor implementiert die SME2.1-Anweisungen (FEAT_SME2p1).
PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE
73
Dieser Arm-Prozessor implementiert die SME2.2-Anweisungen (FEAT_SME2p2).
PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE
74
Dieser Arm-Prozessor implementiert die SVE AES-Anweisungen im Streaming-SVE-Modus (FEAT_SSVE_AES).
PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE
75
Dieser Arm-Prozessor implementiert die SVE-Bit-Permute-Anweisungen im Streaming-SVE-Modus (FEAT_SSVE_BitPerm).
PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE
76
Dieser Arm-Prozessor implementiert die SVE FMMLA -Anweisung (Verbreiterung, 4-Wege, FP8 bis FP16) im Streaming-SVE-Modus (FEAT_SSVE_F8F16MM).
PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE
77
Dieser Arm-Prozessor implementiert die SVE FMMLA -Anweisung (Verbreiterung, 8-Wege, FP8 bis FP32) im Streaming-SVE-Modus (FEAT_SSVE_F8F32MM).
PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE
78
Dieser Arm-Prozessor implementiert die SVE2-FP8DOT2 Anweisungen im Streaming-SVE-Modus (FEAT_SSVE_FP8DOT2).
PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE
79
Dieser Arm-Prozessor implementiert die SVE2-FP8DOT4 Anweisungen im Streaming-SVE-Modus (FEAT_SSVE_FP8DOT4).
PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE
80
Dieser Arm-Prozessor implementiert die SVE2 FP8FMA-Anweisungen im Streaming-SVE-Modus (FEAT_SSVE_FP8FMA).
PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE
81
Dieser Arm-Prozessor implementiert die SME F8F32-Anweisungen (FEAT_SME_F8F32).
PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE
82
Dieser Arm-Prozessor implementiert die SME F8F16-Anweisungen (FEAT_SME_F8F16).
PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE
83
Dieser Arm-Prozessor implementiert die SME F16F16-Anweisungen (FEAT_SME_F16F16).
PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE
84
Dieser Arm-Prozessor implementiert die SME B16B16-Anweisungen (FEAT_SME_B16B16).
PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE
85
Dieser Arm-Prozessor implementiert die SME F64F64-Anweisungen (FEAT_SME_F64F64).
PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE
86
Dieser Arm-Prozessor implementiert die SME I16I64-Anweisungen (FEAT_SME_I16I64).
PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE
87
Dieser Arm-Prozessor implementiert die SME LUTv2-Anweisungen (FEAT_SME_LUTv2).
PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE
88
Dieser Arm-Prozessor implementiert SME FA64 (Vollständige AArch64-Anweisung im Streaming-SVE-Modus) (FEAT_SME_FA64).
PF_UMONITOR_INSTRUCTION_AVAILABLE
89
Dieser x64-Prozessor implementiert die UMONITOR-Anweisung.

Rückgabewert

Wenn das Feature unterstützt wird, ist der Rückgabewert ein Wert ungleich Null.

Wenn das Feature nicht unterstützt wird, ist der Rückgabewert null.

Wenn die HAL die Erkennung des Features nicht unterstützt, unabhängig davon, ob die Hardware das Feature unterstützt, ist der Rückgabewert ebenfalls null.

Bemerkungen

Unterstützung für PF_SSSE3_INSTRUCTIONS_AVAILABLEPF_AVX512F_INSTRUCTIONS_AVAILABLE through wurde im Windows SDK (19041) hinzugefügt und werden von Windows 10, Version 2004 (Mai 2020 Update) oder höher unterstützt.

Unterstützung für PF_ERMS_AVAILABLE, PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEund PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE wurden im Windows SDK (20348) hinzugefügt und werden von Windows 11 und Windows Server 2022 unterstützt.

Die Definition PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE wurde im Windows SDK (22621) hinzugefügt und wird von Windows 11, Version 22H2, unterstützt.

Die Unterstützung für PF_ARM_SVE_INSTRUCTIONS_AVAILABLE das PF_ARM_SHA3_INSTRUCTIONS_AVAILABLEPF_MOVDIR64B_INSTRUCTION_AVAILABLEPF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE Windows SDK (26100) und werden von Windows 11, Version 24H2 und Windows Server 2025 oder höher unterstützt.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Mindestanforderungen für unterstützte Server Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Fenster
Header processthreadsapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

Siehe auch

In VBS-Enklaven verfügbare Vertdll-APIs

Systeminformationsfunktionen