次の方法で共有


KeSaveExtendedProcessorState 関数 (wdm.h)

KeSaveExtendedProcessorState ルーチンは、拡張プロセッサの状態情報を保存します。

構文

NTSTATUS KeSaveExtendedProcessorState(
  [in]  ULONG64      Mask,
  [out] PXSTATE_SAVE XStateSave
);

パラメーター

[in] Mask

64 ビット機能マスク。 このマスク内のビットは、保存する拡張プロセッサ機能の状態を識別します。 マスク ビットが 1 の場合、ルーチンは、このビットによって識別される機能の状態を保存します。 マスク ビットが 0 の場合、対応する機能の状態は保存されません。 このマスクでは、オペレーティング システムが有効になっていない拡張プロセッサ機能を識別することはできません。 有効な機能のマスクを取得するには、 RtlGetEnabledExtendedFeatures ルーチンを 呼び出します。

呼び出し元は、次の 1 つ以上の XSTATE_MASK_XXX フラグ ビットのビットごとの OR にこのパラメーターを設定できます。

意味
XSTATE_MASK_LEGACY_FLOATING_POINT 浮動小数点拡張 (x87/MMX)。
XSTATE_MASK_LEGACY_SSE ストリーミング SIMD 拡張機能 (SSE)。
XSTATE_MASK_LEGACY x87/MMX と SSE の両方の拡張機能。
XSTATE_MASK_GSSE Intel Sandy Bridge (旧称 Gesher) SSE 拡張機能。
XSTATE_MASK_AVX512 AVX-512 拡張機能
XSTATE_MASK_MPX MPX 拡張機能
XSTATE_MASK_AMX_TILE_CONFIG AMX 拡張機能 (構成)
XSTATE_MASK_AMX_TILE_DATA AMX 拡張機能 (データ)

[out] XStateSave

ルーチンが XSTATE_SAVE 構造体を書き込む呼び出し元によって割り当てられたバッファーへのポインター。 この構造体には、 Mask パラメーターで示される拡張プロセッサ機能の保存された状態情報が含まれています。 バッファーは、この構造体を格納するのに十分な大きさである必要があります。

戻り値

KeSaveExtendedProcessorState は、呼び出しが成功した場合にSTATUS_SUCCESSを返します。 考えられるエラーの戻り値は次のとおりです。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
メモリ割り当て操作が失敗しました。

注釈

XSAVE 命令と XRSTOR 命令をサポートする x86 ベースのプロセッサでは、拡張プロセッサの状態情報を保存および復元するための柔軟なメカニズムが提供されます。 KeSaveExtendedProcessorState は、これらの手順が使用可能な場合に使用します。

KeSaveExtendedProcessorState によって保存された拡張プロセッサ状態を復元するには、KeRestoreExtendedProcessorState ルーチンを呼び出します。

Mask パラメーターは、状態を保存する拡張プロセッサ機能を指定します。 KeRestoreExtendedProcessorState 呼び出しは、状態を保存した KeSaveExtendedProcessorState 呼び出しによって保存された拡張プロセッサの状態のみを復元します。

カーネル モード コードでは、その機能を使用する前に拡張プロセッサ機能の状態を保存し、終了する前に状態を復元する必要があります。

割り込みサービス ルーチン (ISR) は、通常、拡張プロセッサ機能の使用を妨げる重大な時間制約の下で実行されます。 ただし、ISR では、1 つ以上の拡張プロセッサ機能を使用する遅延プロシージャ コール (DPC) をスケジュールできます。 DPC ルーチンは、ルーチンが実行されるプロセス・アドレス・スペースが割り込まれたプログラムのコンテキストを保持するために、拡張フィーチャーの状態を保管および復元する必要があります。

KeSaveFloatingPointState ルーチンと KeRestoreFloatingPointState ルーチンは、浮動小数点状態 (x87/MMX レジスタ) と SSE 状態のみを保存して復元します。

要件

要件
サポートされている最小のクライアント Windows 7 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library Ntoskrnl.lib
[DLL] Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE