LowLevel Hooks sind böse

Es gibt ja viele, die stehen auf Hooks. Es gibt auch sog. LowLevel Hooks, welche keine DLL benötigen, sondern im Kontext des Prozesses (Threads) laufen, welche das SetWindowsHookEx aufgerufen hat.
Das Problem ist nun bei solchen Hooks, das diese in der Vergangenheit sehr oft zu Verzögerungen im ganzen Windows System geführt haben, wenn ein Hook in der Callback etwas länger gebraucht hat oder sonstwie Fehler gehabt hat.

Dies hat MS nun versucht zu in Windows 7 (RTM) beheben. Die Lösung ist einfach:
Der Hook wird einfach entfernt, wenn er 11 Mal länger als 300 ms gebraucht hat 😉 (wobei ich 300 ms immer noch sehr lang finde…)

Siehe auch: Global hooks getting lost on Windows 7