Partager via


IsProcessorFeaturePresent, fonction (processthreadsapi.h)

Détermine si la fonctionnalité de processeur spécifiée est prise en charge par l’ordinateur actuel.

Syntaxe

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Paramètres

[in] ProcessorFeature

Fonctionnalité de processeur à tester. Ce paramètre peut être l’une des valeurs suivantes.

Valeur Meaning
PF_ARM_64BIT_LOADSTORE_ATOMIC
25
Les instructions atomiques de chargement/stockage 64 bits sont disponibles.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
Vingt-quatre
Les instructions de division sont disponibles.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
Le cache externe est disponible.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
L’instruction de multiplication à virgule flottante est disponible.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
VFP/Neon : 32 x 64bits banque est présente. Cet indicateur a la même signification que PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
Le jeu d’instructions 3D-Now est disponible.
PF_CHANNELS_ENABLED
16
Les canaux de processeur sont activés.
PF_COMPARE_EXCHANGE_DOUBLE
2
L’opération de comparaison et d’échange atomique (cmpxchg) est disponible.
PF_COMPARE_EXCHANGE128
14
L’opération de comparaison atomique et d’échange 128 bits (cmpxchg16b) est disponible.

Windows Server 2003 et Windows XP/2000 : Cette fonctionnalité n’est pas prise en charge.

PF_COMPARE64_EXCHANGE128
15
L’opération de comparaison atomique 64 et exchange 128 bits (cmp8xchg16) est disponible.

Windows Server 2003 et Windows XP/2000 : Cette fonctionnalité n’est pas prise en charge.

PF_FASTFAIL_AVAILABLE
23
_fastfail() est disponible.
PF_FLOATING_POINT_EMULATED
1
Les opérations à virgule flottante sont émulées à l’aide d’un émulateur logiciel.

Cette fonction retourne une valeur différente de zéro si les opérations à virgule flottante sont émulées ; sinon, elle retourne zéro.

PF_FLOATING_POINT_PRECISION_ERRATA
0
Sur un Pentium, une erreur de précision à virgule flottante peut se produire dans de rares circonstances.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
Le jeu d’instructions MMX est disponible.
PF_NX_ENABLED
12

La prévention de l’exécution des données est activée.

Windows XP/2000 : Cette fonctionnalité n’est pas prise en charge tant que Windows XP avec SP2 et Windows Server 2003 avec SP1.

PF_PAE_ENABLED
9
Le processeur est compatible paE. Pour plus d’informations, consultez l’extension d’adresse physique.

Tous les processeurs x64 retournent toujours une valeur différente de zéro pour cette fonctionnalité.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
L’instruction RDTSC est disponible.
PF_RDWRFSGSBASE_AVAILABLE
22
Les instructions RDFSBASE, RDGSBASE, WRFSBASE et WRGSBASE sont disponibles.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
La traduction d’adresses de deuxième niveau est prise en charge par le matériel.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
Le jeu d’instructions SSE3 est disponible.

Windows Server 2003 et Windows XP/2000 : Cette fonctionnalité n’est pas prise en charge.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
Le jeu d’instructions SSSE3 est disponible.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
Le jeu d’instructions SSE4_1 est disponible.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
Le jeu d’instructions SSE4_2 est disponible.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
Le jeu d’instructions AVX est disponible.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
Le jeu d’instructions AVX2 est disponible.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
Le jeu d’instructions AVX512F est disponible.
PF_VIRT_FIRMWARE_ENABLED
Vingt-et-un
La virtualisation est activée dans le microprogramme et mise à disposition par le système d’exploitation.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
Le jeu d’instructions SSE est disponible.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
Le jeu d’instructions SSE2 est disponible.

Windows 2000 : Cette fonctionnalité n’est pas prise en charge.

PF_XSAVE_ENABLED
17
Le processeur implémente les instructions XSAVE et XRSTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP/2000 : Cette fonctionnalité n’est pas prise en charge tant que Windows 7 et Windows Server 2008 R2 ne sont pas pris en charge.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Ce processeur Arm implémente le jeu d’instructions Arm v8.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Ce processeur Arm implémente les instructions de chiffrement supplémentaires Arm v8 (par exemple, AES, SHA1 et SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Ce processeur Arm implémente les instructions ARM v8 extra CRC32.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Ce processeur Arm implémente les instructions atomiques Arm v8.1 (par exemple, CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Ce processeur Arm implémente les instructions arm v8.2 DP (par exemple, SDOT, UDOT). Cette fonctionnalité est facultative dans les implémentations Arm v8.2 et obligatoires dans les implémentations Arm v8.4.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
Ce processeur Arm implémente les instructions JSCVT Arm v8.3 (par exemple, FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Ce processeur Arm implémente les instructions LRCPC Arm v8.3 (par exemple, LDAPR). Notez que certaines UC Arm v8.2 peuvent éventuellement prendre en charge les instructions LRCPC.
PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
46
Ce processeur Arm implémente les instructions SVE (Scalable Vector Extension) (FEAT_SVE).
PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
47
Ce processeur Arm implémente les instructions SVE2 (FEAT_SVE2).
PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE
48
Ce processeur Arm implémente les instructions SVE2.1 (FEAT_SVE2p1).
PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE
49
Ce processeur Arm implémente les instructions SVE AES (FEAT_SVE_AES).
PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE
50
Ce processeur Arm implémente la polynomiale SVE 128 bits multiplie les instructions longues (FEAT_SVE_PMULL128).
PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE
51
Ce processeur Arm implémente les instructions de permute de bits SVE (FEAT_SVE_BitPerm).
PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE
52
Ce processeur Arm implémente les instructions SVE BF16 (BFloat16) (FEAT_BF16).
PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE
53
Ce processeur Arm implémente les instructions SVE EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE
54
Ce processeur Arm implémente les instructions SVE B16B16 (FEAT_SVE_B16B16).
PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE
55
Ce processeur Arm implémente les instructions de chiffrement SVE SHA-3 (FEAT_SVE_SHA3).
PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE
56
Ce processeur Arm implémente les instructions de chiffrement SVE SM4 (FEAT_SVE_SM4).
PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE
57
Ce processeur Arm implémente les instructions SVE I8MM (matrice Int8 multiplie) (FEAT_I8MM).
PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE
58
Ce processeur Arm implémente les instructions de multiplication de la matrice SVE F32MM (FP32) (FEAT_F32MM).
PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE
59
Ce processeur Arm implémente les instructions SVE F64MM (matrice FP64 multiplie) (FEAT_F64MM).
PF_BMI2_INSTRUCTIONS_AVAILABLE
60
Ce processeur x64 implémente le jeu d’instructions BMI2.
PF_MOVDIR64B_INSTRUCTION_AVAILABLE
61
Ce processeur x64 implémente l’instruction MOVDIR64B.
PF_ARM_LSE2_AVAILABLE
62
Ce processeur Arm implémente les instructions atomiques LSE2 (FEAT_LSE2).
PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
64
Ce processeur Arm implémente les instructions de chiffrement SHA-3 (FEAT_SHA3).
PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
65
Ce processeur Arm implémente les instructions de chiffrement SHA-512 (FEAT_SHA512).
PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE
66
Ce processeur Arm implémente les instructions NEON (FEAT_I8MM) I8MM (matrice Int8 multiplie).
PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE
67
Ce processeur Arm implémente les instructions NEON (à virgule flottante demi-précision) FP16 (FEAT_FP16).
PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE
68
Ce processeur Arm implémente les instructions NEON BF16 (BFloat16) (FEAT_BF16).
PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE
69
Ce processeur Arm implémente les instructions NEON EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SME_INSTRUCTIONS_AVAILABLE
70
Ce processeur Arm implémente les instructions sme (Scalable Matrix Extension) (FEAT_SME).
PF_ARM_SME2_INSTRUCTIONS_AVAILABLE
71
Ce processeur Arm implémente les instructions SME2 (FEAT_SME2).
PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE
72
Ce processeur Arm implémente les instructions SME2.1 (FEAT_SME2p1).
PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE
73
Ce processeur Arm implémente les instructions SME2.2 (FEAT_SME2p2).
PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE
74
Ce processeur Arm implémente les instructions SVE AES lors de la diffusion en continu en mode SVE (FEAT_SSVE_AES).
PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE
75
Ce processeur Arm implémente les instructions de permute de bits SVE lors de la diffusion en continu en mode SVE (FEAT_SSVE_BitPerm).
PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE
76
Ce processeur Arm implémente l’instruction FMMLA SVE (étendue, 4 voies, FP8 à FP16) lors de la diffusion en continu en mode SVE (FEAT_SSVE_F8F16MM).
PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE
77
Ce processeur Arm implémente l’instruction FMMLA SVE (étendue, 8 voies, FP8 à FP32) lors de la diffusion en continu en mode SVE (FEAT_SSVE_F8F32MM).
PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE
78
Ce processeur Arm implémente les instructions de FP8DOT2 SVE2 lors de la diffusion en continu en mode SVE (FEAT_SSVE_FP8DOT2).
PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE
79
Ce processeur Arm implémente les instructions de FP8DOT4 SVE2 lors de la diffusion en continu en mode SVE (FEAT_SSVE_FP8DOT4).
PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE
80
Ce processeur Arm implémente les instructions SVE2 FP8FMA lors de la diffusion en continu en mode SVE (FEAT_SSVE_FP8FMA).
PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE
81
Ce processeur Arm implémente les instructions SME F8F32 (FEAT_SME_F8F32).
PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE
82
Ce processeur Arm implémente les instructions SME F8F16 (FEAT_SME_F8F16).
PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE
83
Ce processeur Arm implémente les instructions SME F16F16 (FEAT_SME_F16F16).
PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE
84
Ce processeur Arm implémente les instructions SME B16B16 (FEAT_SME_B16B16).
PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE
85
Ce processeur Arm implémente les instructions SME F64F64 (FEAT_SME_F64F64).
PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE
86
Ce processeur Arm implémente les instructions DE PME I16I64 (FEAT_SME_I16I64).
PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE
87
Ce processeur Arm implémente les instructions SME LUTv2 (FEAT_SME_LUTv2).
PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE
88
Ce processeur Arm implémente SME FA64 (instruction Full AArch64 set when in Streaming SVE mode) (FEAT_SME_FA64).
PF_UMONITOR_INSTRUCTION_AVAILABLE
89
Ce processeur x64 implémente l’instruction UMONITOR.

Valeur retournée

Si la fonctionnalité est prise en charge, la valeur de retour est une valeur différente de zéro.

Si la fonctionnalité n’est pas prise en charge, la valeur de retour est égale à zéro.

Si hal ne prend pas en charge la détection de la fonctionnalité, si le matériel prend en charge la fonctionnalité, la valeur de retour est également égale à zéro.

Remarques

PF_SSSE3_INSTRUCTIONS_AVAILABLE La prise en charge du biais PF_AVX512F_INSTRUCTIONS_AVAILABLE a été ajoutée dans le Kit de développement logiciel (SDK) Windows (19041) et sont prises en charge par Windows 10, version 2004 (mise à jour de mai 2020) ou ultérieure.

Prise en charge de PF_ERMS_AVAILABLE, PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEet PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE ont été ajoutées dans le Kit de développement logiciel (SDK) Windows (20348) et sont prises en charge par Windows 11 et Windows Server 2022.

La définition PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE a été ajoutée dans le Kit de développement logiciel (SDK) Windows (22621) et est prise en charge par Windows 11, version 22H2.

PF_ARM_SVE_INSTRUCTIONS_AVAILABLE PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE PF_MOVDIR64B_INSTRUCTION_AVAILABLE La prise en charge du kit de développement logiciel (SDK) Windows (26100) a été ajoutée et prise en charge par Windows 11, version 24H2 et Windows Server 2025 ou ultérieure.

Spécifications

Requirement Valeur
Client minimum requis Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header processthreadsapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

Voir aussi

API Vertdll disponibles dans les enclaves VBS

Fonctions d’information système