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 che contiene altre informazioni sull'area di memoria non volatile restituita da RtlGetNonVolatileToken .

NvDestination

Puntatore al buffer di destinazione non volatile.

Size

Specifica la lunghezza, 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:

Flags Significato
FILL_NV_MEMORY_FLAG_FLUSH Impostare il valore specificato, quindi scaricare l'intervallo di destinazione. A meno che non sia specificato FILL_NV_MEMORY_FLAG_NO_DRAIN, lo scarico viene seguito da uno scarico. Questo flag garantisce che i dati siano durevoli anche in caso di perdita di energia del sistema.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Eseguire un memset non temporale quando 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 lo scarico e lo 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 Assicurarsi che il memset sia persistente scaricando o usando spostamenti non temporali. In genere, il sistema usa l'approccio meno costoso per rendere persistenti i dati. Questo flag assicura che i dati siano durevoli anche in caso di perdita di energia del sistema. Ignorato quando viene specificato FILL_NV_MEMORY_FLAG_PERSIST.
FILL_NV_MEMORY_FLAG_NO_DRAIN Indica alla routine di non attendere il completamento dello scarico. 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 validi.
STATUS_SUCCESS
La richiesta è stata completata.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 1903
Intestazione ntddk.h
IRQL DPC_LEVEL