Функции перехватчика вне контекста

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

  • Вне контекстные функции-перехватчики находятся в адресном пространстве клиента, будь то в тексте кода или в библиотеке DLL.
  • Функции перехватчиков вне контекста не сопоставляются с адресным пространством сервера.
  • При активации события параметры функции-перехватчика маршалируются через границы процесса.
  • Функции перехватчиков вне контекста заметно медленнее, чем функции-перехватчики в контексте из-за маршалинга.
  • Система помещает в очередь уведомления о событиях, чтобы они поступали асинхронно (из-за времени, необходимого для выполнения маршалинга).

Хотя уведомления о событиях являются асинхронными, Microsoft Active Accessibility гарантирует, что функция обратного вызова получает все события в порядке их создания.

Компонент USER операционной системы выделяет память для событий, которые обрабатываются функциями-перехватчиками вне контекста. Память освобождается при возвращении функций-перехватчиков. Если функция-перехватчик не обрабатывает события достаточно быстро, ресурсы USER снижаются, что в конечном итоге приводит к сбою или крайне медленному времени отклика. Эти проблемы могут возникать в следующих случаях:

  • События активируются очень быстро.
  • Система работает медленно.
  • Функция-перехватчик медленно обрабатывает события.
  • Клиент работает в Windows 9x.