Partager via


Fonction RtlFillNonVolatileMemory (ntddk.h)

La routine RtlFillNonVolatileMemory remplit la mémoire tampon de destination non volatile avec la valeur donnée.

Syntaxe

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

Paramètres

NvToken

Pointeur vers une structure opaque qui contient plus d’informations sur la région de mémoire non volatile qui RtlGetNonVolatileToken a retourné.

NvDestination

Pointeur vers la mémoire tampon de destination non volatile.

Size

Spécifie la longueur, en octets, de l’opération de remplissage.

Value

UCHAR contenant la valeur avec laquelle remplir la mémoire tampon de destination.

Flags

Valeur de type ULONG contenant un ou plusieurs des indicateurs suivants :

Drapeaux Signification
FILL_NV_MEMORY_FLAG_FLUSH Définissez la valeur fournie, puis videz la plage de destination. Sauf si FILL_NV_MEMORY_FLAG_NO_DRAIN est spécifié, le vidage est suivi d’un drain. Cet indicateur garantit que les données sont durables même en cas de perte de puissance du système.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Effectuez un memset non temporel lorsqu’il est disponible. Cela signifie que la mise en cache des données n’est pas nécessaire. Si le processeur ne prend pas en charge les opérations non temporelles pour les plages inférieures à la taille du bus d’adresse, effectuez un memset normal suivi du vidage et du drainage. Si le processeur ignore complètement les déplacements non temporels, RtlSetNonVolatileMemory ne le remplace pas par le vidage et le drainage. Toutefois, si Windows n’a pas d’implémentation pour une architecture donnée (par exemple ARM64), remplacez-la par le vidage et le drainage.
FILL_NV_MEMORY_FLAG_PERSIST Vérifiez que le memset est conservé en vidant ou en utilisant des déplacements non temporels. En règle générale, le système utilise l’approche qui est la moins coûteuse pour conserver les données. Cet indicateur garantit que les données sont durables même en cas de perte de puissance du système. Ignoré lorsque FILL_NV_MEMORY_FLAG_PERSIST est spécifié.
FILL_NV_MEMORY_FLAG_NO_DRAIN Indique à la routine de ne pas attendre la fin du vidage. Doit être spécifié conjointement avec FILL_NV_MEMORY_FLAG_FLUSH et sans FILL_NV_MEMORY_FLAG_PERSIST ni FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

Valeur de retour

La routine retourne l’un des codes d’état :

Retourner le code Description
STATUS_INVALID_PARAMETER
NvToken est un pointeur ou un jeton non valide.
STATUS_SUCCESS
La demande a réussi.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1903
d’en-tête ntddk.h
IRQL DPC_LEVEL