Freigeben über


KeSaveExtendedProcessorState-Funktion (wdm.h)

Die KeSaveExtendedProcessorState Routine speichert erweiterte Prozessorstatusinformationen.

Syntax

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

Parameter

[in] Mask

Eine 64-Bit-Featuremaske. Die Bits in dieser Maske identifizieren die zu speichernden erweiterten Prozessorfeaturezustände. Wenn ein Maskenbit eins ist, speichert die Routine den Zustand des Features, das von diesem Bit identifiziert wird. Wenn ein Maskenbit null ist, wird der Zustand für das entsprechende Feature nicht gespeichert. Diese Maske darf keine erweiterten Prozessorfeatures identifizieren, die vom Betriebssystem nicht aktiviert wurden. Rufen Sie zum Abrufen einer Maske der aktivierten Features die RtlGetEnabledExtendedFeatures Routine auf.

Ein Aufrufer kann diesen Parameter auf den bitweisen OR einer oder mehrerer der folgenden XSTATE_MASK_XXX- Flagbits festlegen:

Wert Bedeutung
XSTATE_MASK_LEGACY_FLOATING_POINT Die Gleitkommaerweiterung (x87/MMX).
XSTATE_MASK_LEGACY_SSE Die Streaming-SIMD-Erweiterung (SSE).
XSTATE_MASK_LEGACY Sowohl die x87/MMX- als auch die SSE-Erweiterungen.
XSTATE_MASK_GSSE Die Intel Sandy Bridge (ehemals Gesher) SSE Erweiterung.
XSTATE_MASK_AVX512 AVX-512-Erweiterung
XSTATE_MASK_MPX MPX-Erweiterung
XSTATE_MASK_AMX_TILE_CONFIG AMX-Erweiterung (Konfiguration)
XSTATE_MASK_AMX_TILE_DATA AMX-Erweiterung (Daten)

[out] XStateSave

Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, in den die Routine eine XSTATE_SAVE Struktur schreibt. Diese Struktur enthält die gespeicherten Zustandsinformationen für die erweiterten Prozessorfeatures, die durch den parameter Mask angegeben sind. Der Puffer muss groß genug sein, um diese Struktur zu enthalten.

Rückgabewert

KeSaveExtendedProcessorState gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Mögliche Fehlerrückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Fehler bei einem Speicherzuweisungsvorgang.

Bemerkungen

Auf x86-basierten Prozessoren, die die XSAVE- und XRSTOR-Anweisungen unterstützen, bieten diese Anweisungen einen flexiblen Mechanismus zum Speichern und Wiederherstellen erweiterter Prozessorstatusinformationen. KeSaveExtendedProcessorState verwendet diese Anweisungen, wenn sie verfügbar sind.

Rufen Sie zum Wiederherstellen des erweiterten Prozessorzustands, der von KeSaveExtendedProcessorStategespeichert wurde, die KeRestoreExtendedProcessorState Routine auf.

Der parameter Mask gibt die erweiterten Prozessorfeatures an, deren Zustand gespeichert werden soll. Ein KeRestoreExtendedProcessorState- Aufruf stellt nur den erweiterten Prozessorzustand wieder her, der vom KeSaveExtendedProcessorState Aufruf gespeichert wurde, der den Zustand gespeichert hat.

Kernelmoduscode muss den Zustand eines erweiterten Prozessorfeatures speichern, bevor es dieses Feature verwendet, und er muss den Zustand wiederherstellen, bevor es beendet wird.

Unterbrechungsdienstroutinen (ISRs) werden unter schweren Zeiteinschränkungen ausgeführt, die in der Regel verhindern, dass sie erweiterte Prozessorfeatures verwenden. Ein ISR kann jedoch einen verzögerten Prozeduraufruf (DPC) planen, der mindestens ein erweitertes Prozessorfeature verwendet. Die DPC-Routine muss den Zustand der erweiterten Features speichern und wiederherstellen, um den Kontext des unterbrochenen Programms beizubehalten, in dessen Prozessadressraum die Routine ausgeführt wird.

Die KeSaveFloatingPointState und KeRestoreFloatingPointState Routinen speichern und wiederherstellen nur den Gleitkommazustand (x87/MMX-Register) und den SSE-Zustand.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows 7 und höheren Versionen von Windows.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library Ntoskrnl.lib
DLL- Ntoskrnl.exe
IRQL- <= DISPATCH_LEVEL

Siehe auch

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE