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 |
---|---|
|
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 |