Freigeben über


RtlFillNonVolatileMemory-Funktion (ntddk.h)

Die Routine RtlFillNonVolatileMemory füllt den nicht veränderlichen Zielpuffer mit dem angegebenen Wert.

Syntax

NTSYSAPI NTSTATUS RtlFillNonVolatileMemory(
  PVOID       NvToken,
  VOID        *NvDestination,
  SIZE_T      Size,
  const UCHAR Value,
  ULONG       Flags
);

Parameter

NvToken

Ein Zeiger auf eine undurchsichtige Struktur, die weitere Informationen zu der nicht veränderliche Speicherregion enthält, die RtlGetNonVolatileToken zurückgegeben hatte.

NvDestination

Ein Zeiger auf den nicht veränderliche Zielpuffer.

Size

Gibt die Länge des Füllvorgangs in Bytes an.

Value

Eine UCHAR mit dem Wert, mit dem der Zielpuffer gefüllt werden soll.

Flags

Ein Wert vom Typ ULONG, der mindestens eins der folgenden Flags enthält:

Flaggen Bedeutung
FILL_NV_MEMORY_FLAG_FLUSH Legen Sie den angegebenen Wert fest, und leeren Sie dann den Zielbereich. Sofern FILL_NV_MEMORY_FLAG_NO_DRAIN nicht angegeben ist, folgt auf die Spülung ein Abfluss. Diese Kennzeichnung stellt sicher, dass die Daten auch im Falle eines Systemausfalls dauerhaft sind.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Führen Sie ein nicht zeitliches Memset aus, wenn verfügbar. Nicht zeitliche Mittel bedeutet, dass das Zwischenspeichern von Daten nicht erforderlich ist. Wenn der Prozessor nicht zeitliche Vorgänge für Bereiche unterstützt, die kleiner als die Adressbusgröße sind, führen Sie ein normales Memset gefolgt von Spülung und Entwässerung durch. Wenn der Prozessor nicht zeitliche Verschiebungen vollständig ignoriert, ersetzt RtlSetNonVolatileMemory sie nicht durch Spülung und Entwässerung. Wenn Windows jedoch keine Implementierung für eine bestimmte Architektur hat (z. B. ARM64), ersetzen Sie sie durch Spülung und Entwässerung.
FILL_NV_MEMORY_FLAG_PERSIST Stellt sicher, dass das Memset beibehalten wird, indem entweder geleert oder nicht zeitliche Verschiebungen verwendet werden. In der Regel verwendet das System den Ansatz, der am wenigsten kostspielig ist, um die Daten zu speichern. Diese Kennzeichnung stellt sicher, dass die Daten auch bei Systemausfall dauerhaft sind. Wird ignoriert, wenn FILL_NV_MEMORY_FLAG_PERSIST angegeben wird.
FILL_NV_MEMORY_FLAG_NO_DRAIN Weist die Routine an, nicht auf den Abschluss des Leerens zu warten. Muss in Verbindung mit FILL_NV_MEMORY_FLAG_FLUSH und ohne FILL_NV_MEMORY_FLAG_PERSIST oder FILL_NV_MEMORY_FLAG_NON_TEMPORAL angegeben werden.

Rückgabewert

Die Routine gibt einen der Statuscodes zurück:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
NvToken- ist ein ungültiger Zeiger oder Token.
STATUS_SUCCESS
Die Anforderung war erfolgreich.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 1903
Header- ntddk.h
IRQL- DPC_LEVEL