Compartir a través de


PSECURE_MEMORY_CACHE_CALLBACK función de devolución de llamada (winnt.h)

Una función definida por la aplicación registrada anteriormente con la función AddSecureMemoryCacheCallback a la que se llama cuando se libera un intervalo de memoria protegido o se cambian sus protecciones.

El tipo PSECURE_MEMORY_CACHE_CALLBACK define un puntero a esta función de devolución de llamada. SecureMemoryCacheCallback es un marcador de posición para el nombre de función definido por la aplicación.

Sintaxis

PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;

BOOLEAN PsecureMemoryCacheCallback(
  [in] PVOID Addr,
  [in] SIZE_T Range
)
{...}

Parámetros

[in] Addr

Dirección inicial del intervalo de memoria.

[in] Range

Tamaño del intervalo de memoria, en bytes.

Valor devuelto

El valor devuelto indica el éxito o error de esta función.

Si el autor de la llamada ha protegido el intervalo de memoria especificado, esta función debe no asegurar la memoria y devolver TRUE.

Si el autor de la llamada no ha protegido el intervalo de memoria especificado, esta función debe devolver FALSE.

Comentarios

Una vez registrada la función de devolución de llamada, se llama después de cualquier intento de liberar el intervalo de memoria especificado o cambiar sus protecciones. Si la aplicación ha protegido cualquier parte del intervalo de memoria especificado, la función de devolución de llamada debe invalidar todas las asignaciones de memoria almacenadas en caché de la aplicación para el intervalo de memoria protegido, no asegurar las partes protegidas del intervalo de memoria y devolver TRUE. De lo contrario, debe devolver FALSE.

La aplicación protege y no protege un intervalo de memoria mediante el envío de solicitudes a un controlador de dispositivo, que usa las funciones MmSecureVirtualMemory y MmUnsecureVirtualMemory para proteger y no asegurar el intervalo. Las operaciones en otros tipos de memoria protegida o bloqueada no desencadenan esta devolución de llamada.

Algunos ejemplos de llamadas de función que desencadenan la función de devolución de llamada incluyen llamadas a las funciones VirtualFree, VirtualFreeEx, VirtualProtect, VirtualProtectEx y UnmapViewOfFile .

Una operación de montón también puede desencadenar la función de devolución de llamada. En este caso, la función no debe realizar más operaciones en el montón que desencadenó la devolución de llamada. Esto incluye llamar a funciones de montón en un montón privado o el montón predeterminado del proceso, o llamar a funciones de biblioteca estándar, como malloc y free, que usan implícitamente el montón predeterminado del proceso.

Para anular el registro de la función de devolución de llamada, use la función RemoveSecureMemoryCacheCallback .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista con SP1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winnt.h (incluya Windows.h)

Consulte también

AddSecureMemoryCacheCallback

RemoveSecureMemoryCacheCallback