Compartilhar via


Função IsProcessorFeaturePresent (processthreadsapi.h)

Determina se o recurso de processador especificado é compatível com o computador atual.

Sintaxe

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Parâmetros

[in] ProcessorFeature

O recurso de processador a ser testado. Esse parâmetro pode ser um dos valores a seguir.

Value Meaning
PF_ARM_64BIT_LOADSTORE_ATOMIC
vinte e cinco
As instruções atômicas de carregamento/armazenamento de 64 bits estão disponíveis.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
24
As instruções de divisão estão disponíveis.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
O cache externo está disponível.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
A instrução de multiplicação-acumulação de ponto flutuante está disponível.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
O banco de registro VFP/Neon: 32 x 64bits está presente. Esse sinalizador tem o mesmo significado que PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
O conjunto de instruções 3D-Now está disponível.
PF_CHANNELS_ENABLED
16
Os canais do processador estão habilitados.
PF_COMPARE_EXCHANGE_DOUBLE
2
A operação de comparação atômica e troca (cmpxchg) está disponível.
PF_COMPARE_EXCHANGE128
14
A operação de comparação atômica e troca de 128 bits (cmpxchg16b) está disponível.

Windows Server 2003 e Windows XP/2000: Não há suporte para esse recurso.

PF_COMPARE64_EXCHANGE128
15
A comparação atômica de 64 e a operação de troca de 128 bits (cmp8xchg16) estão disponíveis.

Windows Server 2003 e Windows XP/2000: Não há suporte para esse recurso.

PF_FASTFAIL_AVAILABLE
23
_fastfail() está disponível.
PF_FLOATING_POINT_EMULATED
1
As operações de ponto flutuante são emuladas usando um emulador de software.

Essa função retornará um valor diferente de zero se operações de ponto flutuante forem emuladas; caso contrário, ele retornará zero.

PF_FLOATING_POINT_PRECISION_ERRATA
0
Em um Pentium, um erro de precisão de ponto flutuante pode ocorrer em circunstâncias raras.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
O conjunto de instruções MMX está disponível.
PF_NX_ENABLED
12

A prevenção de execução de dados está habilitada.

Windows XP/2000: Esse recurso não tem suporte até o Windows XP com SP2 e Windows Server 2003 com SP1.

PF_PAE_ENABLED
9
O processador está habilitado para PAE. Para obter mais informações, consulte a Extensão de Endereço Físico.

Todos os processadores x64 sempre retornam um valor diferente de zero para esse recurso.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
A instrução RDTSC está disponível.
PF_RDWRFSGSBASE_AVAILABLE
22
As instruções RDFSBASE, RDGSBASE, WRFSBASE e WRGSBASE estão disponíveis.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
A Tradução de Endereço de Segundo Nível é compatível com o hardware.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
O conjunto de instruções SSE3 está disponível.

Windows Server 2003 e Windows XP/2000: Não há suporte para esse recurso.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
O conjunto de instruções SSSE3 está disponível.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
O conjunto de instruções SSE4_1 está disponível.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
O conjunto de instruções SSE4_2 está disponível.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
O conjunto de instruções do AVX está disponível.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
O conjunto de instruções AVX2 está disponível.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
O conjunto de instruções AVX512F está disponível.
PF_VIRT_FIRMWARE_ENABLED
21
A virtualização é habilitada no firmware e disponibilizada pelo sistema operacional.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
O conjunto de instruções SSE está disponível.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
O conjunto de instruções SSE2 está disponível.

Windows 2000: Não há suporte para esse recurso.

PF_XSAVE_ENABLED
17
O processador implementa as instruções XSAVE e XRSTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP/2000: Esse recurso não tem suporte até o Windows 7 e o Windows Server 2008 R2.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Esse processador Arm implementa o conjunto de instruções arm v8.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Esse processador Arm implementa as instruções criptográficas adicionais arm v8 (por exemplo, AES, SHA1 e SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Esse processador Arm implementa as instruções adicionais de CRC32 do Arm v8.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Esse processador Arm implementa as instruções atômicas arm v8.1 (por exemplo, CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Esse processador Arm implementa as instruções de DP do Arm v8.2 (por exemplo, SDOT, UDOT). Esse recurso é opcional nas implementações do Arm v8.2 e obrigatório nas implementações do Arm v8.4.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
Esse processador Arm implementa as instruções JSCVT do Arm v8.3 (por exemplo, FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Esse processador Arm implementa as instruções LRCPC do Arm v8.3 (por exemplo, LDAPR). Observe que determinadas CPUs do Arm v8.2 podem, opcionalmente, dar suporte às instruções LRCPC.
PF_ARM_SVE_INSTRUCTIONS_AVAILABLE
46
Esse processador Arm implementa as instruções SVE (Extensão de Vetor Escalonável) (FEAT_SVE).
PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE
47
Esse processador Arm implementa as instruções SVE2 (FEAT_SVE2).
PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE
48
Esse processador Arm implementa as instruções SVE2.1 (FEAT_SVE2p1).
PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE
49
Esse processador Arm implementa as instruções do SVE AES (FEAT_SVE_AES).
PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE
50
Esse processador Arm implementa as instruções longas de multiplicação polinomial SVE de 128 bits (FEAT_SVE_PMULL128).
PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE
51
Esse processador Arm implementa as instruções de permute de bit SVE (FEAT_SVE_BitPerm).
PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE
52
Esse processador Arm implementa as instruções do SVE BF16 (BFloat16) (FEAT_BF16).
PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE
53
Esse processador Arm implementa as instruções SVE EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE
54
Esse processador Arm implementa as instruções SVE B16B16 (FEAT_SVE_B16B16).
PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE
55
Esse processador Arm implementa as instruções criptográficas SVE SHA-3 (FEAT_SVE_SHA3).
PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE
56
Esse processador Arm implementa as instruções criptográficas SM4 do SVE (FEAT_SVE_SM4).
PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE
57
Esse processador Arm implementa as instruções SVE I8MM (multiplicação de matriz Int8) (FEAT_I8MM).
PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE
58
Esse processador Arm implementa as instruções SVE F32MM (multiplicação de matriz FP32) (FEAT_F32MM).
PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE
59
Esse processador Arm implementa as instruções SVE F64MM (multiplicação de matriz FP64) (FEAT_F64MM).
PF_BMI2_INSTRUCTIONS_AVAILABLE
60
Este processador x64 implementa o conjunto de instruções BMI2.
PF_MOVDIR64B_INSTRUCTION_AVAILABLE
61
Este processador x64 implementa a instrução MOVDIR64B.
PF_ARM_LSE2_AVAILABLE
62
Esse processador Arm implementa as instruções atômicas DO LSE2 (FEAT_LSE2).
PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE
64
Esse processador Arm implementa as instruções criptográficas SHA-3 (FEAT_SHA3).
PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE
65
Esse processador Arm implementa as instruções criptográficas SHA-512 (FEAT_SHA512).
PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE
66
Esse processador Arm implementa as instruções NEON (multiplicação de matriz int8) do I8MM (FEAT_I8MM).
PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE
67
Esse processador Arm implementa as instruções NEON FP16 (ponto flutuante de meia precisão) (FEAT_FP16).
PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE
68
Esse processador Arm implementa as instruções NEON BF16 (BFloat16) (FEAT_BF16).
PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE
69
Esse processador Arm implementa as instruções NEON do EBF16 (Extended BFloat16) (FEAT_EBF16).
PF_ARM_SME_INSTRUCTIONS_AVAILABLE
70
Esse processador Arm implementa as instruções SME (Extensão de Matriz Escalonável) (FEAT_SME).
PF_ARM_SME2_INSTRUCTIONS_AVAILABLE
71
Esse processador Arm implementa as instruções SME2 (FEAT_SME2).
PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE
Setenta e dois
Esse processador Arm implementa as instruções do SME2.1 (FEAT_SME2p1).
PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE
73
Esse processador Arm implementa as instruções SME2.2 (FEAT_SME2p2).
PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE
74
Esse processador Arm implementa as instruções do SVE AES no modo SVE de streaming (FEAT_SSVE_AES).
PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE
75
Esse processador Arm implementa as instruções de permute de bit SVE quando estiver no modo SVE de Streaming (FEAT_SSVE_BitPerm).
PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE
76
Esse processador Arm implementa a instrução SVE FMMLA (ampliação, 4 vias, FP8 para FP16) quando estiver no modo SVE de Streaming (FEAT_SSVE_F8F16MM).
PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE
77
Esse processador Arm implementa a instrução SVE FMMLA (ampliação, 8 vias, FP8 para FP32) quando estiver no modo SVE de Streaming (FEAT_SSVE_F8F32MM).
PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE
78
Esse processador Arm implementa as instruções de FP8DOT2 SVE2 quando estiver no modo SVE de Streaming (FEAT_SSVE_FP8DOT2).
PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE
79
Esse processador Arm implementa as instruções de FP8DOT4 SVE2 quando estiver no modo SVE de Streaming (FEAT_SSVE_FP8DOT4).
PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE
80
Esse processador Arm implementa as instruções SVE2 FP8FMA quando estiver no modo SVE de Streaming (FEAT_SSVE_FP8FMA).
PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE
81
Esse processador Arm implementa as instruções SME F8F32 (FEAT_SME_F8F32).
PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE
82
Esse processador Arm implementa as instruções SME F8F16 (FEAT_SME_F8F16).
PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE
83
Esse processador Arm implementa as instruções SME F16F16 (FEAT_SME_F16F16).
PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE
84
Esse processador Arm implementa as instruções do SME B16B16 (FEAT_SME_B16B16).
PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE
85
Esse processador Arm implementa as instruções SME F64F64 (FEAT_SME_F64F64).
PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE
86
Esse processador Arm implementa as instruções do SME I16I64 (FEAT_SME_I16I64).
PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE
87
Esse processador Arm implementa as instruções do SME LUTv2 (FEAT_SME_LUTv2).
PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE
88
Esse processador Arm implementa o SME FA64 (conjunto de instruções AArch64 completo quando estiver no modo SVE de Streaming) (FEAT_SME_FA64).
PF_UMONITOR_INSTRUCTION_AVAILABLE
89
Este processador x64 implementa a instrução UMONITOR.

Valor de retorno

Se houver suporte para o recurso, o valor retornado será um valor diferente de zero.

Se o recurso não tiver suporte, o valor retornado será zero.

Se o HAL não oferecer suporte à detecção do recurso, se o hardware dá suporte ou não ao recurso, o valor retornado também será zero.

Observações

O suporte por PF_SSSE3_INSTRUCTIONS_AVAILABLE meio PF_AVX512F_INSTRUCTIONS_AVAILABLE foi adicionado ao SDK do Windows (19041) e tem suporte do Windows 10, versão 2004 (Atualização de maio de 2020) ou posterior.

Suporte para PF_ERMS_AVAILABLE, PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEe PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE foram adicionados no SDK do Windows (20348) e são compatíveis com o Windows 11 e o Windows Server 2022.

A definição PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE foi adicionada no SDK do Windows (22621) e tem suporte do Windows 11, versão 22H2.

O suporte por PF_ARM_SVE_INSTRUCTIONS_AVAILABLE completo PF_ARM_SHA3_INSTRUCTIONS_AVAILABLEPF_MOVDIR64B_INSTRUCTION_AVAILABLEPF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE foi adicionado ao SDK do Windows (26100) e tem suporte do Windows 11, versão 24H2 e Windows Server 2025 ou posterior.

Requirements

Requirement Value
Cliente mínimo suportado Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo compatível Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
da Plataforma de Destino Windows
Header processthreadsapi.h (inclua Windows.h)
Library Kernel32.lib
de DLL Kernel32.dll

Consulte também

APIs Vertdll disponíveis em enclaves de VBS

Funções de informações do sistema