Compartir a través de


Función RtlFillNonVolatileMemory (ntddk.h)

La rutina RtlFillNonVolatileMemory rellena el búfer de destino no volátil con el valor especificado.

Sintaxis

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

Parámetros

NvToken

Puntero a una estructura opaca que tiene más información sobre la región de memoria no volátil que RtlGetNonVolatileToken había devuelto.

NvDestination

Puntero al búfer de destino no volátil.

Size

Especifica la longitud, en bytes, de la operación de relleno.

Value

UCHAR que contiene el valor con el que se va a rellenar el búfer de destino.

Flags

Valor de tipo ULONG que contiene una o varias de las marcas siguientes:

Marcas Significado
FILL_NV_MEMORY_FLAG_FLUSH Establezca el valor proporcionado y, a continuación, vacíe el intervalo de destino. A menos que se especifique FILL_NV_MEMORY_FLAG_NO_DRAIN, el vaciado va seguido de un drenaje. Esta marca garantiza que los datos sean duraderos incluso en caso de pérdida de energía del sistema.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Realice un memset no temporal cuando esté disponible. No temporal significa que no se requiere el almacenamiento en caché de datos. Si el procesador no admite operaciones no temporales para rangos menores que el tamaño del bus de dirección, realice un memset normal seguido de vaciado y purga. Si el procesador omite por completo los movimientos no temporales, RtlSetNonVolatileMemory no lo reemplaza por vaciado y purga. Sin embargo, si Windows no tiene una implementación para una arquitectura determinada (por ejemplo, ARM64), reemplácela por vaciado y purga.
FILL_NV_MEMORY_FLAG_PERSIST Asegúrese de que el memset se conserva mediante el vaciado o el uso de movimientos no temporales. Normalmente, el sistema usa el enfoque menos costoso para conservar los datos. Esta marca garantiza que los datos sean duraderos incluso en caso de pérdida de energía del sistema. Se omite cuando se especifica FILL_NV_MEMORY_FLAG_PERSIST.
FILL_NV_MEMORY_FLAG_NO_DRAIN Indica a la rutina que no espere a que se complete el vaciado. Debe especificarse junto con FILL_NV_MEMORY_FLAG_FLUSH y sin FILL_NV_MEMORY_FLAG_PERSIST ni FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

Valor devuelto

La rutina devuelve uno de los códigos de estado:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
NvToken es un puntero o token no válidos.
STATUS_SUCCESS
La solicitud fue correcta.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1903
Encabezado ntddk.h
IRQL DPC_LEVEL