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


Функция 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