Функции перехватчика вне контекста
В следующем списке описаны ключевые аспекты функций перехватчика вне контекста.
- Вне контекстные функции-перехватчики находятся в адресном пространстве клиента, будь то в тексте кода или в библиотеке DLL.
- Функции перехватчиков вне контекста не сопоставляются с адресным пространством сервера.
- При активации события параметры функции-перехватчика маршалируются через границы процесса.
- Функции перехватчиков вне контекста заметно медленнее, чем функции-перехватчики в контексте из-за маршалинга.
- Система помещает в очередь уведомления о событиях, чтобы они поступали асинхронно (из-за времени, необходимого для выполнения маршалинга).
Хотя уведомления о событиях являются асинхронными, Microsoft Active Accessibility гарантирует, что функция обратного вызова получает все события в порядке их создания.
Компонент USER операционной системы выделяет память для событий, которые обрабатываются функциями-перехватчиками вне контекста. Память освобождается при возвращении функций-перехватчиков. Если функция-перехватчик не обрабатывает события достаточно быстро, ресурсы USER снижаются, что в конечном итоге приводит к сбою или крайне медленному времени отклика. Эти проблемы могут возникать в следующих случаях:
- События активируются очень быстро.
- Система работает медленно.
- Функция-перехватчик медленно обрабатывает события.
- Клиент работает в Windows 9x.