Funções de gancho fora de contexto
A lista a seguir descreve os principais aspectos das funções de gancho fora do contexto:
- As funções de gancho fora do contexto estão localizadas no espaço de endereço do cliente, seja no corpo do código ou em uma DLL.
- As funções de gancho fora do contexto não são mapeadas para o espaço de endereço do servidor.
- Quando um evento é disparado, os parâmetros para a função de gancho são realizados em marshaling entre os limites do processo.
- As funções de gancho fora de contexto são visivelmente mais lentas do que as funções de gancho no contexto devido ao marshaling.
- O sistema enfileira as notificações de evento para que elas cheguem de forma assíncrona (devido ao tempo necessário para executar o marshaling).
Embora as notificações de evento sejam assíncronas, a Acessibilidade Ativa da Microsoft garante que a função de retorno de chamada receba todos os eventos na ordem em que são gerados.
O componente USER do sistema operacional aloca memória para eventos que são manipulados por funções de gancho fora de contexto. A memória é liberada quando as funções de gancho retornam. Se uma função de gancho não processar eventos rapidamente o suficiente, os recursos user serão reduzidos, resultando em uma falha ou tempos de resposta extremamente lentos. Esses problemas poderão ocorrer se:
- Os eventos são disparados muito rapidamente.
- O sistema está lento.
- A função hook processa eventos lentamente.
- O cliente está em execução no Windows 9x.