RtlZeroDeviceMemory-Funktion (wdm.h)
Die RtlZeroDeviceMemory-Funktion ist ein Praktischer Wrapper für RtlFillDeviceMemory.
Syntax
volatile void * RtlZeroDeviceMemory(
[out] volatile void *Destination,
[in] size_t Length
);
Parameter
[out] Destination
Ein Zeiger auf die Startadresse des Speicherblocks, der mit Nullen gefüllt werden soll.
[in] Length
Die Größe des Speicherblocks, der mit Nullen in Bytes gefüllt werden soll.
Rückgabewert
Gibt den Wert von Destination zurück.
Hinweise
Die RtlZeroDeviceMemory-Funktion ist ein Praktischer Wrapper für RtlFillDeviceMemory.
Weitere Informationen finden Sie im Abschnitt "Hinweise" von RtlFillDeviceMemory.
Hinweis
Diese Funktion funktioniert für alle Versionen von Windows, nicht nur für die neuesten Versionen. Sie müssen den neuesten WDK nutzen, um die Funktionsdeklaration aus dem wdm.h-Header abzurufen. Sie benötigen auch die Bibliothek (volatileaccessk.lib) aus dem neuesten WDK. Der resultierende Treiber wird jedoch unter älteren Versionen von Windows einwandfrei ausgeführt.
Beispiel
// In this scenario we are setting data on memory mapped
// as "device memory" (for example, memory not backed by RAM) to the value zero. On
// some platforms like ARM64, device memory cannot tolerate
// memory accesses that are not naturally aligned (for example, a 4-byte
// load must be 4-byte aligned). Functions like memset, RtlFillMemory,
// and even RtlFillVolatileMemory may perform unaligned memory accesses
// because it is typically faster to do this.
// To ensure only naturally aligned accesses happen, use RtlFillDeviceMemory.
//
// RtlZeroDeviceMemory is an wrapper around RtlFillDeviceMemory that sets the memory
// to zero.
RtlZeroDeviceMemory(DeviceMemoryBuffer, 100);
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (wdm.h einschließen) |
Bibliothek | volatileaccessk.lib (Kernelmodus), volatileaccessu.lib (Benutzermodus) |