共用方式為


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 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。 可能的錯誤傳回值包括下列各項:

傳回碼 Description
STATUS_INSUFFICIENT_RESOURCES
記憶體配置作業失敗。

備註

在支援 XSAVE 和 XRSTOR 指令的 x86 處理器上,這些指令提供彈性的機制來儲存和還原擴充處理器狀態資訊。 KeSaveExtendedProcessorState 如果可用,則會使用這些指示。

若要還原 KeSaveExtendedProcessorState 所儲存的擴充處理器狀態,請呼叫 KeRestoreExtendedProcessorState 例程。

Mask 參數會指定要儲存其狀態的擴充處理器功能。 KeRestoreExtendedProcessorState 呼叫只會還原儲存狀態的 KeSaveExtendedProcessorState 呼叫所儲存的擴充處理器狀態。

核心模式程式代碼必須先儲存擴充處理器功能的狀態,才能使用該功能,而且必須在結束之前還原狀態。

中斷服務例程 (ISR) 在嚴重時間限制下執行,通常防止它們使用擴充處理器功能。 不過,ISR 可以排程使用一或多個擴充處理器功能的延遲過程調用 (DPC) 。 DPC 例程必須儲存和還原擴充功能的狀態,以保留執行例程之進程位址空間的中斷程序內容。

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

規格需求

需求
最低支援的用戶端 可在 Windows 7 和更新版本的 Windows 中使用。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 Ntoskrnl.lib
Dll Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

另請參閱

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE