It could be, ill look at it a bit. Thou I havent seen that bug since i made the change, though it did show rarely.
Sorry but the bug that I said that patch fixed isn't fully correct.

We have other issues with hooks, being:

1. Hooks are called more times then they should be. When co_HOOK_CallHooks is called in co_IntCreateWindowEx, the application that installed the hook calls CallNextHookEx, this leads the the hook proc being called again. Havent looked at this yet.

2. A bigger problem is when two CBT hooks are installed, which im looking into now. After installing the second CBT hook, im seeing cases where co_HOOK_CallHooks is returning a non zero value though the Hook proc is returning a zero value. I beleive this is the real cause of the bug i thought the commit fixed.

Damnest of things is that its returning the hook that is returned in the call to
Hook = IntGetFirstValidHook(Table, HookId)
in function co_HOOK_CallHooks line 345.
This value is being returned from the call KiCallUserMode. So maybe some stack trashing going on.

Michael


> Date: Thu, 29 Apr 2010 18:56:36 -0500
> From: jimtabor.rosdev@gmail.com
> To: ros-dev@reactos.org
> Subject: [ros-dev] [ros-diffs] [mjmartin] 47059: [win32k] - Fix a problem where application that used WH_CBT hook procedures were receiving destroy window notification on windows that were never created.
>
> Michael!
>
> Good work!!!!
>
> Do you think this might be one of the reasons we are reentering
> co_UserDestroyWindow? The DCE is cleared and (not cached) at first
> then we go back a second time and hit the assert...?
>
> http://www.reactos.org/bugzilla/show_bug.cgi?id=5320
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev@reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev


The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail. Get busy.