Fonction SecureZeroMemory2
La fonction SecureZeroMemory2 remplit un bloc de mémoire avec des zéros d’une manière totalement sécurisée.
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Paramètres
Paramètre Destination [out]
Pointeur vers l’adresse de début du bloc de mémoire à remplir avec des zéros.
Paramètre Length [in]
Taille du bloc de mémoire à remplir avec des zéros, exprimée en octets.
Syntaxe
volatile void*
SecureZeroMemory2 (
_Out_writes_bytes_all_(Length) volatile void* Destination,
SIZE_T Length
);
Notes
Cette API est un wrapper pratique autour de FillVolatileMemory et est identique à ZeroVolatileMemory. Consultez les remarques de FillVolatileMemory pour obtenir plus d’informations.
Remarque
Cette fonction fonctionne sur toutes les versions de Windows, pas seulement sur la dernière. Vous devez utiliser le Kit de développement logiciel (SDK) le plus récent pour obtenir la déclaration de fonction de l’en-tête winbase.h
. Vous avez également besoin de la bibliothèque (volatileaccessu.lib
) du Kit de développement logiciel (SDK) le plus récent. Cependant, le fichier binaire résultant s’exécutera correctement sur les versions antérieures de Windows.
Exemple
UCHAR SensitiveData[100];
// Imagine we temporarily store some sensitive cryptographic
// material in a buffer.
StoreCryptographicKey(&SensitiveData);
DoCryptographicOperation(&SensitiveData);
// Now that we are done using the sensitive data we want to
// erase it from the stack. We cannot call FillMemory because
// if the compiler realizes that "SensitiveData" is not
// referenced again the compiler can remove the call to FillMemory.
// Instead we can call SecureZeroMemory2, ZeroVolatileMemory, or FillVolatileMemory
// (the former two are convienence wrappers around the latter). These
// calls will not be optimized away by the compiler.
// Note that SecureZeroMemory2 performs better than the old
// SecureZeroMemory API.
SecureZeroMemory2(&SensitiveData, sizeof(SensitiveData));
Spécifications
Client minimal pris en charge : Version d’évaluation Windows 11 Insider à déterminer
En-tête : winbase.h (inclut Winbase.h)
Bibliothèque en mode noyau : volatileaccessk.lib
Bibliothèque en mode utilisateur : volatileaccessu.lib