Поделиться через


Функция RtlZeroDeviceMemory (wdm.h)

Функция RtlZeroDeviceMemory — это удобная оболочка для RtlFillDeviceMemory.

Синтаксис

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

Параметры

[out] Destination

Указатель на начальный адрес блока памяти для заполнения нулями.

[in] Length

Размер блока памяти для заполнения нулями в байтах.

Возвращаемое значение

Возвращает значение Destination.

Комментарии

Функция RtlZeroDeviceMemory — это удобная оболочка для RtlFillDeviceMemory.

Дополнительные сведения см. в разделе примечаний статьи RtlFillDeviceMemory.

Примечание

Эта функция работает во всех версиях Windows, а не только в последней версии. Чтобы получить объявление функции из заголовка wdm.h, необходимо использовать последнюю версию WDK. Вам также потребуется библиотека (volatileaccessk.lib) из последней версии WDK. Однако результирующий драйвер будет работать нормально в более старых версиях Windows.

Пример

// 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);

Требования

Требование Значение
Заголовок wdm.h (включая Wdm.h)
Библиотека volatileaccessk.lib (режим ядра), volatileaccessu.lib (пользовательский режим)

См. также раздел

RtlFillDeviceMemory