Fonction RtlZeroDeviceMemory (wdm.h)
La fonction RtlZeroDeviceMemory est un wrapper pratique autour de RtlFillDeviceMemory.
Syntaxe
volatile void * RtlZeroDeviceMemory(
[out] volatile void *Destination,
[in] size_t Length
);
Paramètres
[out] Destination
Pointeur vers l’adresse de départ du bloc de mémoire à remplir avec des zéros.
[in] Length
Taille du bloc de mémoire à remplir avec des zéros, en octets.
Valeur retournée
Retourne la valeur de Destination.
Remarques
La fonction RtlZeroDeviceMemory est un wrapper pratique autour de RtlFillDeviceMemory.
Pour plus d’informations, consultez la section remarques de RtlFillDeviceMemory.
Notes
Cette fonction fonctionne sur toutes les versions de Windows, pas seulement sur les versions les plus récentes. Vous devez utiliser la dernière clé WDK pour obtenir la déclaration de fonction à partir de l’en-tête wdm.h. Vous avez également besoin de la bibliothèque (volatileaccessk.lib) de la dernière wdk. Toutefois, le pilote résultant s’exécute correctement sur les versions antérieures de Windows.
Exemple
// 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);
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | wdm.h (include Wdm.h) |
Bibliothèque | volatileaccessk.lib (mode noyau), volatileaccessu.lib (mode utilisateur) |