KeSaveExtendedProcessorState-Funktion (wdm.h)

Die KeSaveExtendedProcessorState-Routine speichert informationen zum erweiterten Prozessorzustand.

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 Status des Features, das durch dieses 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. Um eine Maske der aktivierten Features zu erhalten, rufen Sie die RtlGetEnabledExtendedFeatures-Routine auf .

Ein Aufrufer kann diesen Parameter auf das bitweise OR eines 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-Erweiterung.
XSTATE_MASK_GSSE Die Intel Sandy Bridge (früher 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 Statusinformationen für die erweiterten Prozessorfeatures, die durch den Mask-Parameter angegeben werden. 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
Ein Speicherbelegungsvorgang ist fehlgeschlagen.

Hinweise

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

Um den erweiterten Prozessorstatus wiederherzustellen, der von KeSaveExtendedProcessorState gespeichert wurde, rufen Sie 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 Status eines erweiterten Prozessorfeatures speichern, bevor dieses Feature verwendet wird, und er muss den Zustand wiederherstellen, bevor es beendet wird.

Interruptdienstroutinen (ISRs) werden unter strengen Zeiteinschränkungen ausgeführt, die sie in der Regel an der Verwendung erweiterter Prozessorfeatures hindern. Ein ISR kann jedoch einen verzögerten Prozeduraufruf (DPC) planen, der mindestens ein erweitertes Prozessorfeature verwendet. Die DPC-Routine muss den Status der erweiterten Features speichern und wiederherstellen, um den Kontext des unterbrochenen Programms beizubehalten, in dessen Prozessadressraum die Routine ausgeführt wird.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 7 und späteren Windows-Versionen.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

KeRestoreExtendedProcessorState

KeRestoreFloatingPointState

KeSaveFloatingPointState

RtlGetEnabledExtendedFeatures

XSTATE_SAVE