Freigeben über


Out-of-Context Hook-Funktionen

In der folgenden Liste werden die wichtigsten Aspekte von Out-of-Context-Hook-Funktionen beschrieben:

  • Out-of-context hook functions are located in the client's address space, whether it is in the code body or in a DLL.
  • Out-of-Context Hook-Funktionen werden nicht im Adressbereich des Servers zugeordnet.
  • Wenn ein Ereignis ausgelöst wird, werden die Parameter für die Hook-Funktion über Prozessgrenzen hinweg gemarstet.
  • Out-of-Context-Hook-Funktionen sind aufgrund von Marshaling spürbar langsamer als In-Kontext-Hook-Funktionen.
  • Das System stellt die Ereignisbenachrichtigungen in die Warteschlange, sodass sie asynchron eingehen (aufgrund der Zeit, die zum Marshalling 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 Speicher für Ereignisse zu, die von Out-of-Context-Hook-Funktionen behandelt werden. Der Speicher wird freigegeben, wenn die Hookfunktionen zurückgegeben werden. Wenn eine Hook-Funktion ereignisse nicht schnell genug verarbeitet, werden BENUTZER-Ressourcen verringert, was zu einem Fehler oder extrem langsamen Reaktionszeiten führt. Diese Probleme können auftreten, wenn:

  • Ereignisse werden sehr schnell ausgelöst.
  • Das System ist langsam.
  • Die Hook-Funktion verarbeitet Ereignisse langsam.
  • Der Client wird unter Windows 9x ausgeführt.