Compartilhar via


Função RtlZeroVolatileMemory (wdm.h)

A função RtlZeroVolatileMemory é um wrapper de conveniência em torno de RtlFillVolatileMemory.

Sintaxe

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

Parâmetros

[out] Destination

Um ponteiro para o endereço inicial do bloco de memória a ser preenchido com zeros.

[in] Length

O tamanho do bloco de memória a ser preenchido com zeros, em bytes.

Retornar valor

Retorna o valor de Destination.

Comentários

A função RtlZeroVolatileMemory é um wrapper de conveniência em torno de RtlFillVolatileMemory.

Para obter mais informações, consulte a seção de comentários de RtlFillVolatileMemory.

Observação

Essa função funciona em todas as versões do Windows, não apenas nas mais recentes. Você precisa consumir o WDK mais recente para obter a declaração de função do cabeçalho wdm.h. Você também precisa da biblioteca (volatileaccessk.lib) do WDK mais recente. No entanto, o driver resultante será executado corretamente em versões mais antigas do Windows.

Exemplo

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
Cabeçalho wdm.h (include Wdm.h)
Biblioteca volatileaccessk.lib (modo Kernel), volatileaccessu.lib (Modo de usuário)

Confira também

RtlFillVolatileMemory