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 |