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 |
---|---|
|
NvToken est un pointeur ou un jeton non valide. |
|
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 |