Compartilhar via


Função RtlFillNonVolatileMemory (ntddk.h)

A rotina RtlFillNonVolatileMemory preenche o buffer de destino não volátil com o valor fornecido.

Sintaxe

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

Parâmetros

NvToken

Um ponteiro para uma estrutura opaca que tem mais informações sobre a região de memória não volátil que RtlGetNonVolatileToken havia retornado.

NvDestination

Um ponteiro para o buffer de destino não volátil.

Size

Especifica o comprimento, em bytes, da operação de preenchimento.

Value

Um UCHAR que contém o valor com o qual preencher o buffer de destino.

Flags

Um valor do tipo ULONG que contém um ou mais dos seguintes sinalizadores:

Flags Significado
FILL_NV_MEMORY_FLAG_FLUSH Defina o valor fornecido e libere o intervalo de destino. A menos que FILL_NV_MEMORY_FLAG_NO_DRAIN seja especificado, a liberação é seguida por um dreno. Esse sinalizador garante que os dados sejam duráveis mesmo em caso de perda de energia do sistema.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Execute um memset não temporal quando disponível. Não temporal significa que o cache de dados não é necessário. Se o processador não der suporte a operações não temporais para intervalos menores que o tamanho do barramento de endereço, execute um memset regular seguido de liberação e drenagem. Se o processador ignorar completamente as movimentações não temporais, RtlSetNonVolatileMemory não o substituirá por liberação e drenagem. No entanto, se o Windows não tiver uma implementação para uma determinada arquitetura (digamos ARM64), substitua-a por liberação e drenagem.
FILL_NV_MEMORY_FLAG_PERSIST Garante que o memset seja mantido liberando ou usando movimentos não temporais. Normalmente, o sistema usa a abordagem menos dispendiosa para persistir os dados. Esse sinalizador garante que os dados sejam duráveis mesmo em caso de perda de energia do sistema. Ignorado quando FILL_NV_MEMORY_FLAG_PERSIST é especificado.
FILL_NV_MEMORY_FLAG_NO_DRAIN Informa à rotina para não esperar a liberação ser concluída. Deve ser especificado em conjunto com FILL_NV_MEMORY_FLAG_FLUSH e sem FILL_NV_MEMORY_FLAG_PERSIST ou FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

Retornar valor

A rotina retorna um dos códigos status:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
NvToken é um ponteiro ou token inválido.
STATUS_SUCCESS
A solicitação foi bem-sucedida.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1903
Cabeçalho ntddk.h
IRQL DPC_LEVEL