共用方式為


KeSaveExtendedProcessorState 函式 (wdm.h)

KeSaveExtendedProcessorState 例程會儲存延伸處理器狀態資訊。

語法

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

參數

[in] Mask

64 位功能遮罩。 此遮罩中的位會識別要儲存的擴充處理器功能狀態。 如果遮罩位是其中一個,例程會儲存這個位所識別的功能狀態。 如果遮罩位為零,則不會儲存對應功能的狀態。 此遮罩不得識別作系統未啟用的擴充處理器功能。 若要取得已啟用功能的遮罩,請呼叫 RtlGetEnabledExtendedFeatures 例程。

呼叫端可以將此參數設定為下列一或多個 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 桑迪橋(先前稱為 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 可以排程使用一或多個擴充處理器功能的延後過程調用 (DPC)。 DPC 例程必須儲存和還原擴充功能的狀態,以保留中斷程式的內容,其進程位址空間會執行例程。

KeSaveFloatingPointStateKeRestoreFloatingPointState 例程只會儲存和還原浮點狀態 (x87/MMX 緩存器) 和 SSE 狀態。

要求

要求 價值
最低支援的用戶端 適用於 Windows 7 和更新版本的 Windows。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE