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