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) |