Função RtlZeroDeviceMemory (wdm.h)
A função RtlZeroDeviceMemory é um wrapper de conveniência em torno de RtlFillDeviceMemory.
Sintaxe
volatile void * RtlZeroDeviceMemory(
[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 RtlZeroDeviceMemory é um wrapper de conveniência em torno de RtlFillDeviceMemory.
Para obter mais informações, consulte a seção de comentários de RtlFillDeviceMemory.
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
// In this scenario we are setting data on memory mapped
// as "device memory" (for example, memory not backed by RAM) to the value zero. On
// some platforms like ARM64, device memory cannot tolerate
// memory accesses that are not naturally aligned (for example, a 4-byte
// load must be 4-byte aligned). Functions like memset, RtlFillMemory,
// and even RtlFillVolatileMemory may perform unaligned memory accesses
// because it is typically faster to do this.
// To ensure only naturally aligned accesses happen, use RtlFillDeviceMemory.
//
// RtlZeroDeviceMemory is an wrapper around RtlFillDeviceMemory that sets the memory
// to zero.
RtlZeroDeviceMemory(DeviceMemoryBuffer, 100);
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (include Wdm.h) |
Biblioteca | volatileaccessk.lib (modo Kernel), volatileaccessu.lib (Modo de usuário) |