Поделиться через


функция обратного вызова PSECURE_MEMORY_CACHE_CALLBACK (winnt.h)

Определяемая приложением функция, ранее зарегистрированная с помощью функции AddSecureMemoryCacheCallback , которая вызывается при освобождении защищенного диапазона памяти или изменении его защиты.

Тип PSECURE_MEMORY_CACHE_CALLBACK определяет указатель на эту функцию обратного вызова. SecureMemoryCacheCallback — это заполнитель для имени функции, определяемой приложением.

Синтаксис

PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;

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

Параметры

[in] Addr

Начальный адрес диапазона памяти.

[in] Range

Размер диапазона памяти в байтах.

Возвращаемое значение

Возвращаемое значение указывает на успешное или неудачное выполнение этой функции.

Если вызывающий объект защитил указанный диапазон памяти, эта функция должна отключать память и возвращать значение TRUE.

Если вызывающий объект не защитил указанный диапазон памяти, эта функция должна возвращать значение FALSE.

Комментарии

После регистрации функции обратного вызова она вызывается после любой попытки освободить указанный диапазон памяти или изменить его защиту. Если приложение защищено какой-либо частью указанного диапазона памяти, функция обратного вызова должна сделать недействительными все сопоставления кэшированных памяти приложения для защищенного диапазона памяти, снять безопасность защищенных частей диапазона памяти и вернуть значение TRUE. В противном случае он должен возвращать значение FALSE.

Приложение защищает и отключает диапазон памяти, отправляя запросы драйверу устройства, который использует функции MmSecureVirtualMemory и MmUnsecureVirtualMemory для фактической защиты и отмены безопасности диапазона. Операции с другими типами защищенной или заблокированной памяти не запускают этот обратный вызов.

Примерами вызовов функций, запускающих функцию обратного вызова, являются вызовы функций VirtualFree, VirtualFreeEx, VirtualProtect, VirtualProtectEx и UnmapViewOfFile.

Функция обратного вызова также может быть активирована операцией кучи. В этом случае функция не должна выполнять дальнейшие операции с кучей, активировав обратный вызов. Сюда входит вызов функций кучи в частной куче или кучи процесса по умолчанию или вызов стандартных функций библиотеки, таких как malloc и free, которые неявно используют кучу процесса по умолчанию.

Чтобы отменить регистрацию функции обратного вызова, используйте функцию RemoveSecureMemoryCacheCallback .

Требования

Требование Значение
Минимальная версия клиента Windows Vista с пакетом обновления 1 (SP1) [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header winnt.h (включая Windows.h)

См. также раздел

AddSecureMemoryCacheCallback

RemoveSecureMemoryCacheCallback