Funzioni di hook out-of-context
L'elenco seguente illustra gli aspetti principali delle funzioni di hook out-of-context:
- Le funzioni di hook out-of-context si trovano nello spazio degli indirizzi del client, sia nel corpo del codice che in una DLL.
- Le funzioni di hook out-of-context non vengono mappate nello spazio indirizzi del server.
- Quando viene attivato un evento, i parametri per la funzione hook vengono marshallati tra limiti di processo.
- Le funzioni di hook out-of-context sono notevolmente più lente rispetto alle funzioni di hook nel contesto a causa del marshalling.
- Il sistema accoda le notifiche degli eventi in modo che arrivino in modo asincrono (a causa del tempo necessario per eseguire il marshalling).
Anche se le notifiche degli eventi sono asincrone, Microsoft Active Accessibility assicura che la funzione di callback riceva tutti gli eventi nell'ordine in cui vengono generati.
Il componente USER del sistema operativo alloca memoria per gli eventi gestiti da funzioni di hook out-of-context. La memoria viene liberata quando le funzioni di hook restituiscono. Se una funzione hook non elabora gli eventi abbastanza rapidamente, le risorse UTENTE vengono ridotte, causando un errore o tempi di risposta estremamente lenti. Questi problemi possono verificarsi se:
- Gli eventi vengono generati molto rapidamente.
- Il sistema è lento.
- La funzione hook elabora gli eventi lentamente.
- Il client è in esecuzione in Windows 9x.