Condividi tramite


Funzione RtlFillNonVolatileMemory (ntddk.h)

La routine RtlFillNonVolatileMemory riempie il buffer di destinazione non volatile con il valore specificato.

Sintassi

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

Parametri

NvToken

Puntatore a una struttura opaca con altre informazioni sull'area di memoria non volatile che RtlGetNonVolatileToken restituito.

NvDestination

Puntatore al buffer di destinazione non volatile.

Size

Specifica la lunghezza, espressa in byte, dell'operazione di riempimento.

Value

UCHAR contenente il valore con cui riempire il buffer di destinazione.

Flags

Valore di tipo ULONG contenente uno o più flag seguenti:

Bandiere Significato
FILL_NV_MEMORY_FLAG_FLUSH Impostare il valore specificato, quindi scaricare l'intervallo di destinazione. A meno che non venga specificato FILL_NV_MEMORY_FLAG_NO_DRAIN, lo scaricamento è seguito da uno scarico. Questo flag garantisce che i dati siano durevoli anche in caso di perdita di alimentazione del sistema.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Eseguire un memset non temporale, se disponibile. Non temporale significa che la memorizzazione nella cache dei dati non è necessaria. Se il processore non supporta operazioni non temporali per intervalli inferiori alle dimensioni del bus di indirizzi, eseguire un memset regolare seguito da scaricamento e svuotamento. Se il processore ignora completamente gli spostamenti non temporali, RtlSetNonVolatileMemory non lo sostituisce con scaricamento e svuotamento. Tuttavia, se Windows non ha un'implementazione per una determinata architettura (ad esempio ARM64), sostituirla con scaricamento e svuotamento.
FILL_NV_MEMORY_FLAG_PERSIST Verifica che il memset sia persistente scaricando o utilizzando spostamenti non temporali. In genere, il sistema usa l'approccio meno costoso per rendere persistenti i dati. Questo flag garantisce che i dati siano durevoli anche in caso di perdita di alimentazione del sistema. Ignorato quando si specifica FILL_NV_MEMORY_FLAG_PERSIST.
FILL_NV_MEMORY_FLAG_NO_DRAIN Indica alla routine di non attendere il completamento dello scaricamento. Deve essere specificato in combinazione con FILL_NV_MEMORY_FLAG_FLUSH e senza FILL_NV_MEMORY_FLAG_PERSIST o FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

Valore restituito

La routine restituisce uno dei codici di stato:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
NvToken è un puntatore o un token non valido.
STATUS_SUCCESS
La richiesta ha avuto esito positivo.

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 1903
intestazione ntddk.h
IRQL DPC_LEVEL