MmSecureVirtualMemoryEx, fonction (ntddk.h)
Cette routine sonde la plage d’adresses demandée et protège la plage d’adresses spécifiée contre sa protection rendue plus restrictive et 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 modifiée en PAGE_NOACCESS ou PAGE_READONLY. Toutes les autres modifications de protection sont autorisées. |
PAGE_READONLY | La protection ne peut pas être modifiée en PAGE_NOACCESS. Toutes les autres modifications de protection sont autorisées. |
Flags
Spécifie un ou plusieurs des indicateurs suivants :
Drapeau | Description |
---|---|
MM_SECURE_EXCLUSIVE | La sécurisation réussit uniquement s’il n’y a pas d’autres sécurisations déjà épinglées n’importe où 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 se termine. |
MM_SECURE_USER_MODE_ONLY | La protection spécifiée par cette sécurisation ne sera appliquée qu’aux appels suivants du mode utilisateur qui tentent de modifier la protection (les appelants en mode noyau contournent cette sécurisation). |
MM_SECURE_NO_INHERIT | Si le processus est cloné, contrairement au processus parent, le VAD du processus enfant ne sera pas sécurisé. |
Valeur de retour
Retourne une valeur semblable à un handle à utiliser uniquement pour non sécurisé 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 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 renvoyer la plage à un état normal.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10, version 1809 |
d’en-tête | ntddk.h |
IRQL | APC_LEVEL |