Partager via


PSECURE_MEMORY_CACHE_CALLBACK fonction de rappel (winnt.h)

Fonction définie par l’application précédemment inscrite auprès de la fonction AddSecureMemoryCacheCallback appelée lorsqu’une plage de mémoire sécurisée est libérée ou que ses protections sont modifiées.

Le type PSECURE_MEMORY_CACHE_CALLBACK définit un pointeur vers cette fonction de rappel. SecureMemoryCacheCallback est un espace réservé pour le nom de fonction défini par l’application.

Syntaxe

PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;

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

Paramètres

[in] Addr

Adresse de départ de la plage de mémoire.

[in] Range

Taille de la plage de mémoire, en octets.

Valeur retournée

La valeur de retour indique la réussite ou l’échec de cette fonction.

Si l’appelant a sécurisé la plage de mémoire spécifiée, cette fonction doit annuler la sécurité de la mémoire et retourner TRUE.

Si l’appelant n’a pas sécurisé la plage de mémoire spécifiée, cette fonction doit retourner FALSE.

Remarques

Une fois la fonction de rappel inscrite, elle est appelée après toute tentative de libération de la plage de mémoire spécifiée ou de modification de ses protections. Si l’application a sécurisé une partie de la plage de mémoire spécifiée, la fonction de rappel doit invalider tous les mappages de mémoire mis en cache de l’application pour la plage de mémoire sécurisée, non sécuriser les parties sécurisées de la plage de mémoire et retourner TRUE. Sinon, elle doit retourner FALSE.

L’application sécurise et annule la sécurisation d’une plage de mémoire en envoyant des requêtes à un pilote de périphérique, qui utilise les fonctions MmSecureVirtualMemory et MmUnsecureVirtualMemory pour sécuriser et non sécuriser réellement la plage. Les opérations sur d’autres types de mémoire sécurisée ou verrouillée ne déclenchent pas ce rappel.

Parmi les exemples d’appels de fonction qui déclenchent la fonction de rappel, citons les appels aux fonctions VirtualFree, VirtualFreeEx, VirtualProtect, VirtualProtectEx et UnmapViewOfFile.

La fonction de rappel peut également être déclenchée par une opération de tas. Dans ce cas, la fonction ne doit pas effectuer d’autres opérations sur le tas qui a déclenché le rappel. Cela inclut l’appel de fonctions de tas sur un tas privé ou le tas par défaut du processus, ou l’appel de fonctions de bibliothèque standard telles que malloc et free, qui utilisent implicitement le tas par défaut du processus.

Pour annuler l’inscription de la fonction de rappel, utilisez la fonction RemoveSecureMemoryCacheCallback .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista avec SP1 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winnt.h (inclure Windows.h)

Voir aussi

AddSecureMemoryCacheCallback

RemoveSecureMemoryCacheCallback