Поделиться через


Функция IsProcessorFeaturePresent (processthreadsapi.h)

Определяет, поддерживается ли указанный компонент процессора текущим компьютером.

Синтаксис

BOOL IsProcessorFeaturePresent(
  [in] DWORD ProcessorFeature
);

Параметры

[in] ProcessorFeature

Проверяемая функция процессора. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
PF_ARM_64BIT_LOADSTORE_ATOMIC
25
Доступны 64-разрядные инструкции по загрузке и хранению атомарных данных.
PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE
24
Доступны инструкции деления.
PF_ARM_EXTERNAL_CACHE_AVAILABLE
26
Доступен внешний кэш.
PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE
27
Доступна инструкция умножения и накопления с плавающей запятой.
PF_ARM_VFP_32_REGISTERS_AVAILABLE
18
VFP/Neon: 32 x 64bit регистр банка присутствует. Этот флаг имеет то же значение, что и PF_ARM_VFP_EXTENDED_REGISTERS.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
7
Доступен набор инструкций 3D-Now.
PF_CHANNELS_ENABLED
16
Каналы процессора включены.
PF_COMPARE_EXCHANGE_DOUBLE
2
Доступна атомарная операция сравнения и обмена (cmpxchg).
PF_COMPARE_EXCHANGE128
14
Доступна атомарная операция сравнения и обмена (cmpxchg16b).

Windows Server 2003 и Windows XP/2000: Эта функция не поддерживается.

PF_COMPARE64_EXCHANGE128
15
Доступна атомарная операция сравнения 64 и 128-разрядная операция exchange (cmp8xchg16).

Windows Server 2003 и Windows XP/2000: Эта функция не поддерживается.

PF_FASTFAIL_AVAILABLE
23
_fastfail() доступен.
PF_FLOATING_POINT_EMULATED
1
Операции с плавающей запятой эмулируются с помощью эмулятора программного обеспечения.

Эта функция возвращает ненулевое значение, если операции с плавающей запятой эмулируются; в противном случае возвращается ноль.

PF_FLOATING_POINT_PRECISION_ERRATA
0
На процессоре Pentium ошибка точности с плавающей запятой может возникать в редких случаях.
PF_MMX_INSTRUCTIONS_AVAILABLE
3
Доступен набор инструкций MMX.
PF_NX_ENABLED
12

Предотвращение выполнения данных включено.

Windows XP/2000: Эта функция не поддерживается до Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003 с пакетом обновления 1 (SP1).

PF_PAE_ENABLED
9
Процессор поддерживает PAE. Дополнительные сведения см. в разделе Расширение физических адресов.

Все процессоры x64 всегда возвращают ненулевое значение для этой функции.

PF_RDTSC_INSTRUCTION_AVAILABLE
8
Доступна инструкция RDTSC.
PF_RDWRFSGSBASE_AVAILABLE
22
Доступны инструкции по RDFSBASE, RDGSBASE, WRFSBASE и WRGSBASE.
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
Преобразование адресов второго уровня поддерживается оборудованием.
PF_SSE3_INSTRUCTIONS_AVAILABLE
13
Доступен набор инструкций SSE3.

Windows Server 2003 и Windows XP/2000: Эта функция не поддерживается.

PF_SSSE3_INSTRUCTIONS_AVAILABLE
36
Доступен набор инструкций SSSE3.
PF_SSE4_1_INSTRUCTIONS_AVAILABLE
37
Доступен набор инструкций SSE4_1.
PF_SSE4_2_INSTRUCTIONS_AVAILABLE
38
Доступен набор инструкций SSE4_2.
PF_AVX_INSTRUCTIONS_AVAILABLE
39
Доступен набор инструкций AVX.
PF_AVX2_INSTRUCTIONS_AVAILABLE
40
Доступен набор инструкций AVX2.
PF_AVX512F_INSTRUCTIONS_AVAILABLE
41
Доступен набор инструкций AVX512F.
PF_VIRT_FIRMWARE_ENABLED
21
Виртуализация включена во встроенном ПО и предоставляется операционной системой.
PF_XMMI_INSTRUCTIONS_AVAILABLE
6
Доступен набор инструкций SSE.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
10
Доступен набор инструкций SSE2.

Windows 2000: Эта функция не поддерживается.

PF_XSAVE_ENABLED
17
Процессор реализует инструкции XSAVE и XRSTOR.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP/2000: Эта функция не поддерживается до Windows 7 и Windows Server 2008 R2.

PF_ARM_V8_INSTRUCTIONS_AVAILABLE
29
Этот процессор Arm реализует набор инструкций Arm версии 8.
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
Этот процессор Arm реализует дополнительные криптографические инструкции Arm версии 8 (например, AES, SHA1 и SHA2).
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
Этот процессор Arm реализует дополнительные инструкции Arm версии 8 CRC32.
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
Этот процессор Arm реализует атомарные инструкции Arm версии 8.1 (например, CAS, SWP).
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
Этот процессор Arm реализует инструкции Arm версии 8.2 DP (например, SDOT, UDOT). Эта функция является необязательной в реализациях Arm версии 8.2 и обязательной в реализациях Arm версии 8.4.
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
В этом процессоре Arm реализованы инструкции ARM версии 8.3 НАВT (например, FJCVTZS).
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
Этот процессор Arm реализует инструкции Arm версии 8.3 LRCPC (например, LDAPR). Обратите внимание, что некоторые ЦП Arm версии 8.2 могут дополнительно поддерживать инструкции LRCPC.

Возвращаемое значение

Если функция поддерживается, возвращаемое значение будет ненулевым.

Если функция не поддерживается, возвращаемое значение равно нулю.

Если HAL не поддерживает обнаружение функции независимо от того, поддерживает ли оборудование эту функцию, возвращаемое значение также равно нулю.

Комментарии

Поддержка до PF_SSSE3_INSTRUCTIONS_AVAILABLEPF_AVX512F_INSTRUCTIONS_AVAILABLE добавлена в Windows SDK (19041) и поддерживается Windows 10 версии 2004 (обновление за май 2020 г.) или более поздней.

PF_ERMS_AVAILABLEПоддержка , PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEи PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE была добавлена в Windows SDK (20348) и поддерживается Windows 11 и Windows Server 2022.

Определение PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE было добавлено в Windows SDK (22621) и поддерживается Windows 11 версии 22H2.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processthreadsapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

API-интерфейсы Vertdll, доступные в анклавах VBS

Системные информационные функции