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

Siehe auch