SecureZeroMemory2-Funktion
Die SecureZeroMemory2-Funktion füllt einen Speicherblock mit Nullen anhand einer Methode, die garantiert sicher ist.
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor der kommerziellen Freigabe grundlegend geändert werden können. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Parameter
Parameterziel [out]
Ein Zeiger auf die Startadresse des Speicherblocks, der mit Nullen gefüllt werden soll.
Parameterlänge [in]
Die Größe des Speicherblocks in Bytes, der mit Nullen gefüllt werden soll.
Syntax
volatile void*
SecureZeroMemory2 (
_Out_writes_bytes_all_(Length) volatile void* Destination,
SIZE_T Length
);
Hinweise
Diese API ist ein hilfreicher Wrapper um FillVolatileMemory und identisch mit ZeroVolatileMemory. Weitere Informationen finden Sie in den Hinweisen zu FillVolatileMemory.
Hinweis
Diese Funktion funktioniert nicht nur unter der neuesten Windows-Version, sondern unter allen Versionen. Sie müssen das neueste SDK verwenden, um die Funktionsdeklaration aus dem winbase.h
-Header abzurufen. Außerdem benötigen Sie die Bibliothek (volatileaccessu.lib
) aus dem neuesten SDK. Die resultierende Binärdatei wird jedoch in älteren Versionen von Windows problemlos ausgeführt.
Beispiel
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));
Anforderungen
Unterstützte Mindestversion (Client): Windows 11 Insider Preview Build TBD
Header: winbase.h (Winbase.h eingeschlossen)
Kernelmodusbibliothek: volatileaccessk.lib
Benutzermodusbibliothek: volatileaccessu.lib