Freigeben über


RtlSecureZeroMemory-Makro (wdm.h)

Die RtlSecureZeroMemory-Routine füllt einen Speicherblock mit Nullen auf eine Weise, die garantiert sicher ist.

Syntax

void RtlSecureZeroMemory(
         Ptr,
  [in]   cnt
);

Parameter

Ptr

Zeiger auf den Speicherpuffer, der mit Nullen gefüllt werden soll.

[in] cnt

Gibt die Anzahl der Bytes an, die mit Nullen gefüllt werden sollen.

Rückgabewert

Keine

Bemerkungen

Die Wirkung von RtlSecureZeroMemory ist identisch mit der von RtlZeroMemory, mit dem Unterschied, dass es garantiert ist, dass der Speicherort des Arbeitsspeichers null ist, auch wenn er später nicht geschrieben wird. (Der Compiler kann einen Aufruf von RtlZeroMemory optimieren, wenn er feststellt, dass der Aufrufer nicht erneut auf diesen Speicherbereich zugreift.)

Verwenden Sie RtlSecureZeroMemory , um sicherzustellen, dass vertrauliche Informationen auf Null gesetzt wurden. Angenommen, eine Funktion verwendet eine lokale Arrayvariable, um Kennwortinformationen zu speichern. Sobald die Funktion beendet wird, können die Kennwortinformationen am gleichen Speicherort verbleiben, es sei denn, rtlSecureZeroMemory wird auf Null gesetzt.

RtlSecureZeroMemory ist langsamer als RtlZeroMemory; Wenn die Sicherheit kein Problem ist, verwenden Sie stattdessen RtlZeroMemory .

Aufrufer von RtlSecureZeroMemory können in jedem IRQL ausgeführt werden, wenn sich der ptr-Block im nicht auslagerten Pool befindet. Andernfalls muss der Aufrufer unter IRQL <= APC_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Server 2003 und höheren Versionen von Windows. (Da die Routine inline deklariert wird, kann der Text der Routine in früheren Versionen des Betriebssystems enthalten sein.)
Zielplattform Desktop
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
IRQL Beliebige Ebene (siehe Abschnitt Hinweise)

Weitere Informationen

RtlFillMemory

RtlZeroMemory