Fonction MmSecureVirtualMemoryEx (ntddk.h)
Cette routine sonde la plage d’adresses demandée et protège la plage d’adresses spécifiée contre que sa protection soit rendue plus restrictive et qu’elle soit supprimée.
Syntaxe
HANDLE MmSecureVirtualMemoryEx(
PVOID Address,
SIZE_T Size,
ULONG ProbeMode,
ULONG Flags
);
Paramètres
Address
Pointeur vers l’adresse de base pour sonder et sécuriser.
Size
Spécifie la taille, en octets, de la plage à sécuriser.
ProbeMode
Spécifie la protection de page la plus restrictive autorisée. Utilisez PAGE_READWRITE pour spécifier que la plage d’adresses doit rester lisible et accessible en écriture, ou utilisez PAGE_READONLY pour spécifier que la plage d’adresses doit uniquement rester lisible.
ProbeMode | Signification |
---|---|
PAGE_READWRITE | La protection ne peut pas être remplacée par PAGE_NOACCESS ou PAGE_READONLY. Toutes les autres modifications de protection sont autorisées. |
PAGE_READONLY | La protection ne peut pas être remplacée par PAGE_NOACCESS. Toutes les autres modifications de protection sont autorisées. |
Flags
Spécifie un ou plusieurs des indicateurs suivants :
Indicateur | Description |
---|---|
MM_SECURE_EXCLUSIVE | La sécurisation réussit uniquement s’il n’y a pas d’autres sécurités déjà épinglées sur le VAD en question. |
MM_SECURE_NO_CHANGE | Une fois appliquée, aucune modification de protection n’est autorisée pour la région d’adresse virtuelle fournie. La région peut toujours être supprimée si le processus est en cours de fermeture. |
MM_SECURE_USER_MODE_ONLY | La protection spécifiée par cette sécurisation ne sera appliquée qu’aux appels suivants à partir du mode utilisateur qui tentent de modifier la protection (les appelants en mode noyau contourneront cette sécurisation). |
MM_SECURE_NO_INHERIT | Si le processus est cloné, contrairement au processus parent, le VAD du processus enfant n’est pas sécurisé. |
Valeur retournée
Retourne une valeur ressemblant à un handle à utiliser uniquement pour sécuriser la plage.
Si la plage n’a pas pu être verrouillée en raison de problèmes de protection, de mémoire non validée ou de paramètres non valides, cette routine retourne null.
Remarques
Utilisez MmSecureVirtualMemoryEx au lieu de MmSecureVirtualMemory si vous devez spécifier MM_SECURE_NO_CHANGE afin qu’aucune modification de la protection ne soit autorisée sur la vue fournie.
La valeur de retour de cette fonction ne peut être utilisée qu’avec MmUnsecureVirtualMemory. Le pilote appelle cette routine pour rétablir l’état normal de la plage.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1809 |
En-tête | ntddk.h |
IRQL | APC_LEVEL |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour