Función MmSecureVirtualMemoryEx (ntddk.h)

Esta rutina sondea el intervalo de direcciones solicitado y protege el intervalo de direcciones especificado para que su protección sea más restrictiva y se elimine.

Sintaxis

HANDLE MmSecureVirtualMemoryEx(
  PVOID  Address,
  SIZE_T Size,
  ULONG  ProbeMode,
  ULONG  Flags
);

Parámetros

Address

Puntero a la dirección base para sondear y proteger.

Size

Especifica el tamaño, en bytes, del intervalo que se va a proteger.

ProbeMode

Especifica la protección de página más restrictiva que se permite. Use PAGE_READWRITE para especificar que el intervalo de direcciones debe permanecer legible y grabable, o bien use PAGE_READONLY para especificar que el intervalo de direcciones solo debe permanecer legible.

ProbeMode Significado
PAGE_READWRITE No se puede cambiar la protección a PAGE_NOACCESS o PAGE_READONLY. Se permiten todos los demás cambios de protección.
PAGE_READONLY No se puede cambiar la protección a PAGE_NOACCESS. Se permiten todos los demás cambios de protección.

Flags

Especifica una o varias de las marcas siguientes:

Marca Descripción
MM_SECURE_EXCLUSIVE La protección solo se realiza correctamente si no hay ninguna otra seguridad ya anclada en cualquier lugar en el VAD en cuestión.
MM_SECURE_NO_CHANGE Una vez aplicado, no se permiten cambios de protección para la región de direcciones virtuales proporcionada. La región todavía se puede eliminar si el proceso se está saliendo.
MM_SECURE_USER_MODE_ONLY La protección especificada por esta protección solo se aplicará a las llamadas posteriores del modo de usuario que intentan cambiar la protección (los autores de llamadas en modo kernel omitirán esta protección).
MM_SECURE_NO_INHERIT Si el proceso se clona, a diferencia del proceso primario, vaD del proceso secundario no se protegerá.

Valor devuelto

Devuelve un valor similar a un identificador que se va a usar solo para no estar seguro del intervalo.

Si el intervalo no se pudo bloquear debido a problemas de protección, memoria no confirmada o parámetros no válidos, esta rutina devuelve NULL.

Comentarios

Use MmSecureVirtualMemoryEx en lugar de MmSecureVirtualMemory si necesita especificar MM_SECURE_NO_CHANGE para que no se permita ningún cambio de protección en la vista proporcionada.

El valor devuelto de esta función solo se puede usar con MmUnsecureVirtualMemory. El controlador llama a esa rutina para devolver el intervalo a un estado normal.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1809
Encabezado ntddk.h
IRQL APC_LEVEL

Consulte también