Compartir a través de


Función RtlZeroVolatileMemory (wdm.h)

La función RtlZeroVolatileMemory es un contenedor cómodo alrededor de RtlFillVolatileMemory.

Sintaxis

volatile void * RtlZeroVolatileMemory(
  [out] volatile void *Destination,
  [in]  size_t        Length
);

Parámetros

[out] Destination

Puntero a la dirección inicial del bloque de memoria que se va a rellenar con ceros.

[in] Length

Tamaño del bloque de memoria que se va a rellenar con ceros, en bytes.

Valor devuelto

Devuelve el valor de Destination.

Comentarios

La función RtlZeroVolatileMemory es un contenedor cómodo alrededor de RtlFillVolatileMemory.

Para obtener más información, vea la sección comentarios de RtlFillVolatileMemory.

Nota

Esta función funciona en todas las versiones de Windows, no solo en la versión más reciente. Debe consumir el WDK más reciente para obtener la declaración de función del encabezado wdm.h. También necesita la biblioteca (volatileaccessk.lib) del WDK más reciente. Sin embargo, el controlador resultante se ejecutará correctamente en versiones anteriores de Windows.

Ejemplo

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 RtlFillMemory because
// if the compiler realizes that "SensitiveData" is not
// referenced again the compiler can remove the call to RtlFillMemory.
// Instead we can call RtlSecureZeroMemory2, RtlZeroVolatileMemory, or RtlFillVolatileMemory
// (the former two are convenience wrappers around the latter). These
// calls will not be optimized away by the compiler.
// Note that RtlSecureZeroMemory2 performs better than the
// RtlSecureZeroMemory function.

RtlZeroVolatileMemory(&SensitiveData, sizeof(SensitiveData));

Requisitos

Requisito Valor
Header wdm.h (incluya Wdm.h)
Library volatileaccessk.lib (modo kernel), volatileaccessu.lib (modo usuario)

Consulte también

RtlFillVolatileMemory