RtlFillNonVolatileMemory-Funktion (ntddk.h)
Die Routine RtlFillNonVolatileMemory füllt den nicht flüchtigen Zielpuffer mit dem angegebenen Wert aus.
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 zum nicht flüchtigen Speicherbereich enthält, den RtlGetNonVolatileToken zurückgegeben hat.
NvDestination
Ein Zeiger auf den nicht flüchtigen 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 eines der folgenden Flags enthält:
Flags | Bedeutung |
---|---|
FILL_NV_MEMORY_FLAG_FLUSH | Legen Sie den angegebenen Wert fest, und leeren Sie dann den Zielbereich. Sofern nicht FILL_NV_MEMORY_FLAG_NO_DRAIN angegeben ist, folgt auf die Leerung ein Abfluss. Dieses Flag stellt sicher, dass die Daten auch im Falle eines Systemausfalls dauerhaft sind. |
FILL_NV_MEMORY_FLAG_NON_TEMPORAL | Führen Sie bei Verfügbarkeit ein nicht temporales Memset aus. Nicht temporal bedeutet, dass das Zwischenspeichern von Daten nicht erforderlich ist. Wenn der Prozessor keine nicht temporalen Vorgänge für Bereiche unterstützt, die kleiner als die Adressbusgröße sind, führen Sie ein reguläres Memset aus, gefolgt von "Flush" und "Drain". Wenn der Prozessor nicht temporale Verschiebungen vollständig ignoriert, ersetzt RtlSetNonVolatileMemory nicht durch Flush und Drain. Wenn Windows jedoch über keine Implementierung für eine bestimmte Architektur (z. B. ARM64) verfügt, ersetzen Sie sie durch "flush and drain". |
FILL_NV_MEMORY_FLAG_PERSIST | Stellt sicher, dass das Memset entweder durch Leeren oder nicht temporale Verschiebungen beibehalten wird. In der Regel verwendet das System den kostengünstigsten Ansatz, um die Daten beizubehalten. Dieses Flag stellt sicher, dass die Daten auch im Falle eines Systemausfalls 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 der Leerung 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 status Codes zurück:
Rückgabecode | Beschreibung |
---|---|
|
NvToken ist ein ungültiger Zeiger oder ein ungültiges Token. |
|
Die Anforderung wurde erfolgreich gesendet. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1903 |
Kopfzeile | ntddk.h |
IRQL | DPC_LEVEL |