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 64 ビット レジスタ バンクが存在します。 このフラグは、 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
アトミック比較および交換 128 ビット操作 (cmpxchg16b) を使用できます。

Windows Server 2003 および Windows XP/2000: この機能はサポートされていません。

PF_COMPARE64_EXCHANGE128
15
アトミック比較 64 と exchange 128 ビット操作 (cmp8xchg16) を使用できます。

Windows Server 2003 および Windows XP/2000: この機能はサポートされていません。

PF_FASTFAIL_AVAILABLE
23
_fastfail() を使用できます。
PF_FLOATING_POINT_EMULATED
1
浮動小数点演算は、ソフトウェア エミュレーターを使用してエミュレートされます。

浮動小数点演算がエミュレートされる場合、この関数は 0 以外の値を返します。それ以外の場合は、0 を返します。

PF_FLOATING_POINT_PRECISION_ERRATA
0
Pentium では、まれに浮動小数点精度エラーが発生する可能性があります。
PF_MMX_INSTRUCTIONS_AVAILABLE
3
MMX 命令セットを使用できます。
PF_NX_ENABLED
12

データ実行防止 が有効になっています。

Windows XP/2000: この機能は、SP2 と Windows Server 2003 SP1 の Windows XP まではサポートされません。

PF_PAE_ENABLED
9
プロセッサは PAE 対応です。 詳細については、「 物理アドレス拡張機能」を参照してください。

すべての x64 プロセッサは、常にこの機能の 0 以外の値を返します。

PF_RDTSC_INSTRUCTION_AVAILABLE
8
RDTSC 命令を使用できます。
PF_RDWRFSGSBASE_AVAILABLE
22
RDFSBASE、RDGSBASE、WRFSBASE、WRGSBASE の各命令を使用できます。
PF_SECOND_LEVEL_ADDRESS_TRANSLATION
20
第 2 レベルのアドレス変換は、ハードウェアでサポートされています。
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 v8 命令セットを実装します。
PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE
30
この Arm プロセッサは、Arm v8 の追加の暗号化命令 (AES、SHA1、SHA2 など) を実装します。
PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE
31
この Arm プロセッサは、Arm v8 の追加 CRC32 命令を実装します。
PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE
34
この Arm プロセッサは、Arm v8.1 アトミック命令 (CAS、SWP など) を実装します。
PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE
43
この Arm プロセッサは、Arm v8.2 DP 命令 (SDOT、UDOT など) を実装します。 この機能は Arm v8.2 実装では省略可能であり、Arm v8.4 の実装では必須です。
PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE
44
この Arm プロセッサは、Arm v8.3 JSCVT 命令 (FJCVTZS など) を実装します。
PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE
45
この Arm プロセッサは、Arm v8.3 LRCPC 命令 (LDAPR など) を実装します。 特定の Arm v8.2 CPU では、必要に応じて LRCPC 命令がサポートされる場合があることに注意してください。

戻り値

機能がサポートされている場合、戻り値は 0 以外の値になります。

機能がサポートされていない場合、戻り値は 0 です。

ハードウェアが機能をサポートしているかどうかに関係なく、HAL が機能の検出をサポートしていない場合、戻り値も 0 になります。

注釈

through PF_AVX512F_INSTRUCTIONS_AVAILABLEPF_SSSE3_INSTRUCTIONS_AVAILABLEサポートは、Windows SDK (19041) に追加され、Windows 10 バージョン 2004 (2020 年 5 月の更新プログラム) 以降でサポートされています。

PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLEPF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLEPF_ERMS_AVAILABLEサポートは、Windows SDK (20348) に追加され、Windows 11および Windows Server 2022 でサポートされています。

定義PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLEは Windows SDK (22621) に追加され、Windows 11 バージョン 22H2 でサポートされています。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー processthreadsapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

VBS エンクレーブで使用できる Vertdll API

システム情報関数