KeRestoreExtendedProcessorState 関数 (wdm.h)

KeRestoreExtendedProcessorState ルーチンは、以前に保存された拡張プロセッサ状態情報を復元します。

構文

void KeRestoreExtendedProcessorState(
  [in] PXSTATE_SAVE XStateSave
);

パラメーター

[in] XStateSave

復元する拡張プロセッサ状態情報を含む XSTATE_SAVE 構造体へのポインター。 この構造体の内容は、 KeSaveExtendedProcessorState ルーチンによって以前に保存されている必要があります。

戻り値

なし

解説

カーネル モード ドライバー コードでは、KeSaveExtendedProcessorState と KeRestoreExtendedProcessorState の呼び出しが正しく入れ子になっていることを確認する必要があります。 これは、各入れ子レベルで、 KeRestoreExtendedProcessorState 呼び出しによって復元された状態が、対応する KeSaveExtendedProcessorState 呼び出しによって保存された状態と同じになるように必要です。 適切な入れ子を確保するために、カーネル モード ドライバー コードは次の規則に従う必要があります。

  • 保存された状態を復元する KeRestoreExtendedProcessorState 呼び出しは、状態を保存した KeSaveExtendedProcessorState 呼び出しと同じ IRQL で実行されている必要があります。
  • KeSaveExtendedProcessorState 呼び出しと KeRestoreExtendedProcessorState 呼び出しのペアが、周囲の KeSaveExtendedProcessorState 呼び出しと KeRestoreExtendedProcessorState 呼び出しのペア内に入れ子になっている場合、入れ子になった呼び出しの IRQL を、周囲の呼び出しの IRQL よりも小さくすることはできません。
  • 通常、KeSaveExtendedProcessorState によって保存された状態を含む呼び出し元によって割り当てられたXSTATE_SAVE構造体は、スタック上に存在します。 スタックは、保存された状態情報の入れ子を自然に保持します。 ドライバー コードがスタック以外の場所に状態を格納する場合、ドライバー ライターは 、KeSaveExtendedProcessorState 呼び出しと KeRestoreExtendedProcessorState 呼び出しの入れ子を保持するために特別な注意 払う必要があります。
  • 保存された状態を復元する KeRestoreExtendedProcessorState 呼び出しは、状態を保存した KeSaveExtendedProcessorState 呼び出しと同じスレッドで実行されている必要があります。
同様の規則のセットは、 KeSaveFloatingPointState ルーチンと KeRestoreFloatingPointState ルーチンに 適用されます。

要件

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

こちらもご覧ください

KeRestoreFloatingPointState

KeSaveExtendedProcessorState

KeSaveFloatingPointState

XSTATE_SAVE