Compartilhar via


PSECURE_MEMORY_CACHE_CALLBACK função de retorno de chamada (winnt.h)

Uma função definida pelo aplicativo registrada anteriormente com a função AddSecureMemoryCacheCallback que é chamada quando um intervalo de memória protegido é liberado ou suas proteções são alteradas.

O tipo PSECURE_MEMORY_CACHE_CALLBACK define um ponteiro para essa função de retorno de chamada. SecureMemoryCacheCallback é um espaço reservado para o nome da função definida pelo aplicativo.

Sintaxe

PSECURE_MEMORY_CACHE_CALLBACK PsecureMemoryCacheCallback;

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

Parâmetros

[in] Addr

O endereço inicial do intervalo de memória.

[in] Range

O tamanho do intervalo de memória, em bytes.

Retornar valor

O valor retornado indica o êxito ou a falha dessa função.

Se o chamador tiver protegido o intervalo de memória especificado, essa função deverá desacasar a memória e retornar TRUE.

Se o chamador não tiver protegido o intervalo de memória especificado, essa função deverá retornar FALSE.

Comentários

Depois que a função de retorno de chamada é registrada, ela é chamada após qualquer tentativa de liberar o intervalo de memória especificado ou alterar suas proteções. Se o aplicativo tiver protegido qualquer parte do intervalo de memória especificado, a função de retorno de chamada deverá invalidar todos os mapeamentos de memória armazenados em cache do aplicativo para o intervalo de memória protegido, cancelar a segurança das partes protegidas do intervalo de memória e retornar TRUE. Caso contrário, ele deverá retornar FALSE.

O aplicativo protege e não garante um intervalo de memória enviando solicitações para um driver de dispositivo, que usa as funções MmSecureVirtualMemory e MmUnsecureVirtualMemory para realmente proteger e desmarcar o intervalo. As operações em outros tipos de memória protegida ou bloqueada não disparam esse retorno de chamada.

Exemplos de chamadas de função que disparam a função de retorno de chamada incluem chamadas para as funções VirtualFree, VirtualFreeEx, VirtualProtect, VirtualProtectEx e UnmapViewOfFile .

A função de retorno de chamada também pode ser disparada por uma operação de heap. Nesse caso, a função não deve executar mais nenhuma operação no heap que disparou o retorno de chamada. Isso inclui chamar funções de heap em um heap privado ou no heap padrão do processo ou chamar funções de biblioteca padrão, como malloc e free, que usam implicitamente o heap padrão do processo.

Para cancelar o registro da função de retorno de chamada, use a função RemoveSecureMemoryCacheCallback .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista com SP1 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winnt.h (inclua Windows.h)

Confira também

AddSecureMemoryCacheCallback

RemoveSecureMemoryCacheCallback