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 |
---|---|
|
NvToken es un puntero o token no válidos. |
|
La solicitud fue correcta. |
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10, versión 1903 |
Encabezado | ntddk.h |
IRQL | DPC_LEVEL |