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 |
---|---|
|
NvToken é um ponteiro ou token inválido. |
|
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 |