Función MmSecureVirtualMemoryEx (ntddk.h)
Esta rutina sondea el intervalo de direcciones solicitado y protege el intervalo de direcciones especificado de tener su protección más restrictiva y eliminarse.
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:
Bandera | Descripción |
---|---|
MM_SECURE_EXCLUSIVE | La protección solo se realiza correctamente si no hay ninguna otra seguridad ya anclada a ningún otro lugar en el VAD en cuestión. |
MM_SECURE_NO_CHANGE | Una vez aplicado, no se permite ningún cambio de protección para la región de direcciones virtuales proporcionada. La región todavía se puede eliminar si se sale del proceso. |
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 del modo kernel omitirán esta protección). |
MM_SECURE_NO_INHERIT | Si el proceso se clona, a diferencia del proceso primario, no se protegerá VAD del proceso secundario. |
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.
Observaciones
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 | Valor |
---|---|
cliente mínimo admitido | Windows 10, versión 1809 |
encabezado de | ntddk.h |
irQL | APC_LEVEL |