Функция 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. |
Возвращаемое значение
Подпрограмма возвращает один из кодов состояния:
Код возврата | Описание |
---|---|
|
NvToken является недопустимым указателем или маркером. |
|
Запрос выполнен успешно. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1903 |
Верхняя часть | ntddk.h |
IRQL | DPC_LEVEL |