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 |
---|---|
|
NvToken- ist ein ungültiger Zeiger oder Token. |
|
Die Anforderung war erfolgreich. |
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 10, Version 1903 |
Header- | ntddk.h |
IRQL- | DPC_LEVEL |