Freigeben über


KeRestoreExtendedProcessorState-Funktion (wdm.h)

Die KeRestoreExtendedProcessorState-Routine stellt erweiterte Prozessorzustandsinformationen wieder her, die zuvor gespeichert wurden.

Syntax

void KeRestoreExtendedProcessorState(
  [in] PXSTATE_SAVE XStateSave
);

Parameter

[in] XStateSave

Ein Zeiger auf eine XSTATE_SAVE Struktur, die die wiederherzustellenden informationen zum erweiterten Prozessorzustand enthält. Der Inhalt dieser Struktur muss zuvor von der KeSaveExtendedProcessorState-Routine gespeichert worden sein.

Rückgabewert

Keine

Bemerkungen

Der Kernelmodustreibercode muss sicherstellen, dass Aufrufe von KeSaveExtendedProcessorState und KeRestoreExtendedProcessorState ordnungsgemäß geschachtelt sind. Dies ist erforderlich, damit auf jeder Schachtelungsebene der Zustand, der durch den KeRestoreExtendedProcessorState-Aufruf wiederhergestellt wurde, derselbe Zustand ist, der vom entsprechenden KeSaveExtendedProcessorState-Aufruf gespeichert wurde. Um eine ordnungsgemäße Schachtelung sicherzustellen, muss der Kernelmodustreibercode die folgenden Regeln befolgen:

  • Ein KeRestoreExtendedProcessorState-Aufruf , der einen gespeicherten Zustand wiederhergestellt, muss in derselben IRQL wie der KeSaveExtendedProcessorState-Aufruf ausgeführt werden, der den Zustand gespeichert hat.
  • Wenn ein Paar aus KeSaveExtendedProcessorState - und KeRestoreExtendedProcessorState-Aufrufen innerhalb eines Paars von umgebenden KeSaveExtendedProcessorState - und KeRestoreExtendedProcessorState-Aufrufen geschachtelt ist, darf die IRQL für die geschachtelten Aufrufe nicht niedriger sein als die IRQL für die umgebenden Aufrufe.
  • In der Regel befindet sich die vom Aufrufer zugeordnete XSTATE_SAVE Struktur, die den zustand enthält, der von KeSaveExtendedProcessorState gespeichert wurde, im Stapel. Der Stapel behält natürlich die Schachtelung von gespeicherten Zustandsinformationen bei. Wenn der Treibercode den Zustand an einem anderen Speicherort als dem Stapel speichert, muss der Treiberschreiber besonders darauf achten, dass die Schachtelung der Aufrufe KeSaveExtendedProcessorState und KeRestoreExtendedProcessorState beibehalten wird.
  • Der KeRestoreExtendedProcessorState-Aufruf , mit dem ein gespeicherter Zustand wiederhergestellt wird, muss im selben Thread wie der KeSaveExtendedProcessorState-Aufruf ausgeführt werden, der den Zustand gespeichert hat.
Ein ähnlicher Satz von Regeln gilt für die Routinen KeSaveFloatingPointState und KeRestoreFloatingPointState .

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 (siehe Abschnitt "Hinweise")

Weitere Informationen

KeRestoreFloatingPointState

KeSaveExtendedProcessorState

KeSaveFloatingPointState

XSTATE_SAVE