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 retournée par RtlGetNonVolatileToken .
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 :
Indicateurs | 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 courant du système. |
FILL_NV_MEMORY_FLAG_NON_TEMPORAL | Exécutez un memset non temporel lorsqu’il est disponible. Non temporelle 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’adresses, effectuez un memset standard suivi d’un vidage et d’un 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 vidage et drainage. |
FILL_NV_MEMORY_FLAG_PERSIST | Vérifie 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 la moins coûteuse pour conserver les données. Cet indicateur permet de s’assurer que les données sont durables, même en cas de perte de courant 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 retournée
La routine retourne l’un des codes status :
Code de retour | Description |
---|---|
|
NvToken est un pointeur ou un jeton non valide. |
|
La demande a abouti. |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 version 1903 |
En-tête | ntddk.h |
IRQL | DPC_LEVEL |