Out-of-Context-Hook-Funktionen
In der folgenden Liste werden die wichtigsten Aspekte von Außer-Kontext-Hookfunktionen beschrieben:
- Out-of-Context-Hookfunktionen befinden sich im Adressraum des Clients, unabhängig davon, ob sie sich im Codetext oder in einer DLL befinden.
- Out-of-Context-Hookfunktionen werden nicht dem Adressraum des Servers zugeordnet.
- Wenn ein Ereignis ausgelöst wird, werden die Parameter für die Hookfunktion über Prozessgrenzen hinweg gemarst.
- Out-of-Context-Hookfunktionen sind aufgrund des Marshallings spürbar langsamer als Kontext-Hookfunktionen.
- Das System stellt die Ereignisbenachrichtigungen in die Warteschlange, sodass sie asynchron eintreffen (aufgrund der Zeit, die für die Durchführung des Marshallings erforderlich ist).
Obwohl die Ereignisbenachrichtigungen asynchron sind, stellt Microsoft Active Accessibility sicher, dass die Rückruffunktion alle Ereignisse in der Reihenfolge empfängt, in der sie generiert werden.
Die USER-Komponente des Betriebssystems weist Arbeitsspeicher für Ereignisse zu, die von Out-of-Context-Hookfunktionen verarbeitet werden. Der Speicher wird freigegeben, wenn die Hookfunktionen zurückgegeben werden. Wenn eine Hookfunktion Ereignisse nicht schnell genug verarbeitet, werden user-Ressourcen reduziert, was zu einem Fehler oder extrem langsamen Antwortzeiten führt. Diese Probleme können auftreten, wenn:
- Ereignisse werden sehr schnell ausgelöst.
- Das System ist langsam.
- Die Hookfunktion verarbeitet Ereignisse langsam.
- Der Client wird unter Windows 9x ausgeführt.