Compartir a través de


Función IsProcessorFeaturePresent (processthreadsapi.h)

Determina si el equipo actual admite la característica de procesador especificada.

Syntax

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Parámetros

[in] ProcessorFeature

Característica de procesador que se va a probar. Este parámetro puede ser uno de los siguientes valores.

Importancia Meaning
PF_ARM_64BIT_LOADSTORE_ATOMIC
25
Las instrucciones atómicas de carga y almacenamiento de 64 bits están disponibles.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
veinticuatro
Las instrucciones de división están disponibles.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
La caché externa está disponible.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
La instrucción de multiplicación y acumulación de punto flotante está disponible.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
El banco de registro VFP/Neon: 32 x 64 bits está presente. Esta marca tiene el mismo significado que PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
El conjunto de instrucciones 3D-Now está disponible.
PF_CHANNELS_ENABLED
16
Los canales de procesador están habilitados.
PF_COMPARE_EXCHANGE_DOUBLE
2
La operación de comparación atómica e intercambio (cmpxchg) está disponible.
PF_COMPARE_EXCHANGE128
14
La operación de comparación atómica e intercambio de 128 bits (cmpxchg16b) está disponible.

Windows Server 2003 y Windows XP/2000: Esta característica no se admite.

PF_COMPARE64_EXCHANGE128
15
La operación de comparación atómica de 64 e intercambio de 128 bits (cmp8xchg16) está disponible.

Windows Server 2003 y Windows XP/2000: Esta característica no se admite.

PF_FASTFAIL_AVAILABLE
23
_fastfail() está disponible.
PF_FLOATING_POINT_EMULATED
1
Las operaciones de punto flotante se emulan mediante un emulador de software.

Esta función devuelve un valor distinto de cero si se emulan las operaciones de punto flotante; de lo contrario, devuelve cero.

PF_FLOATING_POINT_PRECISION_ERRATA
0
En un Pentium, un error de precisión de punto flotante puede producirse en raras circunstancias.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
El conjunto de instrucciones MMX está disponible.
PF_NX_ENABLED
12

La prevención de ejecución de datos está habilitada.

Windows XP/2000: Esta característica no se admite hasta Que Windows XP con SP2 y Windows Server 2003 con SP1.

PF_PAE_ENABLED
9
El procesador está habilitado para PAE. Para obtener más información, vea Extensión de dirección física.

Todos los procesadores x64 siempre devuelven un valor distinto de cero para esta característica.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
La instrucción RDTSC está disponible.
PF_RDWRFSGSBASE_AVAILABLE
22
Las instrucciones de RDFSBASE, RDGSBASE, WRFSBASE y WRGSBASE están disponibles.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
La traducción de direcciones de segundo nivel es compatible con el hardware.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
El conjunto de instrucciones SSE3 está disponible.

Windows Server 2003 y Windows XP/2000: Esta característica no se admite.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
El conjunto de instrucciones SSSE3 está disponible.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
El conjunto de instrucciones SSE4_1 está disponible.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
El conjunto de instrucciones SSE4_2 está disponible.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
El conjunto de instrucciones avX está disponible.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
El conjunto de instrucciones AVX2 está disponible.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
El conjunto de instrucciones AVX512F está disponible.
PF_VIRT_FIRMWARE_ENABLED
Veintiuno
La virtualización está habilitada en el firmware y está disponible por el sistema operativo.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
El conjunto de instrucciones SSE está disponible.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
El conjunto de instrucciones SSE2 está disponible.

Windows 2000: Esta característica no se admite.

PF_XSAVE_ENABLED
17
El procesador implementa las instrucciones XSAVE y XRSTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP/2000: Esta característica no se admite hasta Windows 7 y Windows Server 2008 R2.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Este procesador Arm implementa el conjunto de instrucciones de Arm v8.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Este procesador Arm implementa las instrucciones criptográficas adicionales de Arm v8 (por ejemplo, AES, SHA1 y SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Este procesador Arm implementa las instrucciones extra CRC32 de Arm v8.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Este procesador Arm implementa las instrucciones atómicas de Arm v8.1 (por ejemplo, CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Este procesador Arm implementa las instrucciones de DP de Arm v8.2 (por ejemplo, SDOT, UDOT). Esta característica es opcional en implementaciones de Arm v8.2 y obligatorias en implementaciones de Arm v8.4.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
Este procesador Arm implementa las instrucciones de JSCVT de Arm v8.3 (por ejemplo, FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Este procesador Arm implementa las instrucciones LRCPC de Arm v8.3 (por ejemplo, LDAPR). Tenga en cuenta que ciertas CPU de Arm v8.2 pueden admitir opcionalmente las instrucciones LRCPC.
PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
46
Este procesador Arm implementa las instrucciones de SVE (extensión de vector escalable) (FEAT_SVE).
PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
47
Este procesador Arm implementa las instrucciones de SVE2 (FEAT_SVE2).
PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE
48
Este procesador Arm implementa las instrucciones de SVE2.1 (FEAT_SVE2p1).
PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE
49
Este procesador Arm implementa las instrucciones de AES de SVE (FEAT_SVE_AES).
PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE
50
Este procesador Arm implementa las instrucciones largas de multiplicación polinómica de 128 bits de SVE (FEAT_SVE_PMULL128).
PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE
51
Este procesador Arm implementa las instrucciones de permute de bits SVE (FEAT_SVE_BitPerm).
PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE
52
Este procesador Arm implementa las instrucciones de SVE BF16 (BFloat16) (FEAT_BF16).
PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE
53
Este procesador Arm implementa las instrucciones SVE EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE
54
Este procesador Arm implementa las instrucciones de SVE B16B16 (FEAT_SVE_B16B16).
PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE
55
Este procesador Arm implementa las instrucciones criptográficas SVE SHA-3 (FEAT_SVE_SHA3).
PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE
56
Este procesador Arm implementa las instrucciones criptográficas de SVE SM4 (FEAT_SVE_SM4).
PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE
57
Este procesador Arm implementa las instrucciones de SVE I8MM (multiplicación de matriz Int8) (FEAT_I8MM).
PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE
58
Este procesador Arm implementa las instrucciones de la matriz SVE F32MM (FP32 matrix multiply) (FEAT_F32MM).
PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE
59
Este procesador Arm implementa las instrucciones de la matriz SVE F64MM (FP64 matrix multiply) (FEAT_F64MM).
PF_BMI2_INSTRUCTIONS_AVAILABLE
60
Este procesador x64 implementa el conjunto de instrucciones DE IMC2.
PF_MOVDIR64B_INSTRUCTION_AVAILABLE
61
Este procesador x64 implementa la instrucción MOVDIR64B.
PF_ARM_LSE2_AVAILABLE
62
Este procesador Arm implementa las instrucciones atómicas LSE2 (FEAT_LSE2).
PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
64
Este procesador Arm implementa las instrucciones criptográficas SHA-3 (FEAT_SHA3).
PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
65
Este procesador Arm implementa las instrucciones criptográficas SHA-512 (FEAT_SHA512).
PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE
66
Este procesador Arm implementa las instrucciones NEON de I8MM (matriz Int8 multiplique) (FEAT_I8MM).
PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE
67
Este procesador Arm implementa las instrucciones NEON de FP16 (punto flotante de precisión media) (FEAT_FP16).
PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE
68
Este procesador Arm implementa las instrucciones NEON de BF16 (BFloat16) (FEAT_BF16).
PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE
69
Este procesador Arm implementa las instrucciones NEON de EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SME_INSTRUCTIONS_AVAILABLE
70
Este procesador Arm implementa las instrucciones de SME (extensión de matriz escalable) (FEAT_SME).
PF_ARM_SME2_INSTRUCTIONS_AVAILABLE
71
Este procesador Arm implementa las instrucciones SME2 (FEAT_SME2).
PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE
72
Este procesador Arm implementa las instrucciones SME2.1 (FEAT_SME2p1).
PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE
73
Este procesador Arm implementa las instrucciones SME2.2 (FEAT_SME2p2).
PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE
74
Este procesador Arm implementa las instrucciones de AES de SVE cuando se encuentra en modo SVE de streaming (FEAT_SSVE_AES).
PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE
75
Este procesador Arm implementa las instrucciones de permute de bits SVE cuando se encuentra en modo SVE de streaming (FEAT_SSVE_BitPerm).
PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE
76
Este procesador Arm implementa la instrucción SVE FMMLA (ampliación, 4 vías, FP8 a FP16) cuando está en modo SVE de streaming (FEAT_SSVE_F8F16MM).
PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE
77
Este procesador Arm implementa la instrucción SVE FMMLA (ampliación, 8 vías, FP8 a FP32) cuando está en modo SVE de streaming (FEAT_SSVE_F8F32MM).
PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE
78
Este procesador Arm implementa las instrucciones de FP8DOT2 SVE2 cuando se encuentra en modo SVE de streaming (FEAT_SSVE_FP8DOT2).
PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE
79
Este procesador Arm implementa las instrucciones de FP8DOT4 SVE2 cuando se encuentra en modo SVE de streaming (FEAT_SSVE_FP8DOT4).
PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE
80
Este procesador Arm implementa las instrucciones de SVE2 FP8FMA cuando se encuentra en modo SVE de streaming (FEAT_SSVE_FP8FMA).
PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE
81
Este procesador Arm implementa las instrucciones de SME F8F32 (FEAT_SME_F8F32).
PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE
82
Este procesador Arm implementa las instrucciones de SME F8F16 (FEAT_SME_F8F16).
PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE
83
Este procesador Arm implementa las instrucciones de SME F16F16 (FEAT_SME_F16F16).
PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE
84
Este procesador Arm implementa las instrucciones de SME B16B16 (FEAT_SME_B16B16).
PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE
85
Este procesador Arm implementa las instrucciones de SME F64F64 (FEAT_SME_F64F64).
PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE
86
Este procesador Arm implementa las instrucciones de SME I16I64 (FEAT_SME_I16I64).
PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE
87
Este procesador Arm implementa las instrucciones de LUTv2 de SME (FEAT_SME_LUTv2).
PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE
88
Este procesador Arm implementa SME FA64 (conjunto completo de instrucciones AArch64 cuando está en modo SVE de streaming) (FEAT_SME_FA64).
PF_UMONITOR_INSTRUCTION_AVAILABLE
89
Este procesador x64 implementa la instrucción UMONITOR.

Valor devuelto

Si se admite la característica, el valor devuelto es un valor distinto de cero.

Si no se admite la característica, el valor devuelto es cero.

Si hal no admite la detección de la característica, independientemente de si el hardware admite o no la característica, el valor devuelto también es cero.

Observaciones

La compatibilidad con PF_SSSE3_INSTRUCTIONS_AVAILABLE a través PF_AVX512F_INSTRUCTIONS_AVAILABLE de se agregó en Windows SDK (19041) y es compatible con Windows 10, versión 2004 (actualización de mayo de 2020) o posterior.

Se agregó compatibilidad con PF_ERMS_AVAILABLE, PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEy PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE en Windows SDK (20348) y son compatibles con Windows 11 y Windows Server 2022.

La definición PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE se agregó en Windows SDK (22621) y es compatible con Windows 11, versión 22H2.

Se agregó compatibilidad con PF_ARM_SVE_INSTRUCTIONS_AVAILABLE a través PF_MOVDIR64B_INSTRUCTION_AVAILABLE y PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE a través PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE de Windows SDK (26100) y son compatibles con Windows 11, versión 24H2 y Windows Server 2025 o posterior.

Requisitos

Requirement Importancia
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo admitido Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
Header processthreadsapi.h (incluya Windows.h)
Library Kernel32.lib
DLL de Kernel32.dll

Consulte también

API de Vertdll disponibles en enclaves de VBS

Funciones de información del sistema