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.