Функция RtlFillNonVolatileMemory (ntddk.h)

Подпрограмма RtlFillNonVolatileMemory заполняет энергонезависимый буфер назначения заданным значением.

Синтаксис

NTSYSAPI NTSTATUS RtlFillNonVolatileMemory(
  PVOID       NvToken,
  VOID        *NvDestination,
  SIZE_T      Size,
  const UCHAR Value,
  ULONG       Flags
);

Параметры

NvToken

Указатель на непрозрачную структуру, которая содержит дополнительные сведения о области энергонезависимой памяти, возвращенной RtlGetNonVolatileToken .

NvDestination

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

Size

Указывает длину (в байтах) операции заполнения.

Value

UCHAR, содержащий значение, с помощью которого заполняется целевой буфер.

Flags

Значение типа ULONG, содержащее один или несколько следующих флагов:

Флаги Значение
FILL_NV_MEMORY_FLAG_FLUSH Задайте указанное значение, а затем очистите диапазон назначения. Если FILL_NV_MEMORY_FLAG_NO_DRAIN не указано, за очисткой следует слив. Этот флаг гарантирует устойчивость данных даже в случае потери питания системы.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Выполнение невременного набора memset, если он доступен. Невременное означает, что кэширование данных не требуется. Если процессор не поддерживает невременные операции для диапазонов меньше размера адресной шины, выполните обычный набор memset, за которым следует очистка и очистка. Если процессор полностью игнорирует невременные перемещения, RtlSetNonVolatileMemory не заменяет его на очистку и очистку. Однако если в Windows нет реализации для заданной архитектуры (например, ARM64), замените ее на очистку и очистку.
FILL_NV_MEMORY_FLAG_PERSIST Гарантирует, что набор memset сохраняется путем очистки или использования невременных перемещений. Как правило, система использует подход, который является наименее затратным для сохранения данных. Этот флаг гарантирует, что данные являются устойчивыми даже в случае потери питания системы. Игнорируется при указании FILL_NV_MEMORY_FLAG_PERSIST.
FILL_NV_MEMORY_FLAG_NO_DRAIN Сообщает подпрограмме не ждать завершения очистки. Должен указываться вместе с FILL_NV_MEMORY_FLAG_FLUSH и без FILL_NV_MEMORY_FLAG_PERSIST или FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

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

Подпрограмма возвращает один из кодов состояния:

Код возврата Описание
STATUS_INVALID_PARAMETER
NvToken является недопустимым указателем или маркером.
STATUS_SUCCESS
Запрос выполнен успешно.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1903
Верхняя часть ntddk.h
IRQL DPC_LEVEL