- This is not a hack and not a fix. Please retest related bug report applications. Tested Firefox 3.5 and the new putty. Need new debug print outs. ATM Ff 3.5 send out WH_JOURNALRECORD hook calls when the thread is in cleanup. Look like this: Thread is in cleanup and trying to call hook 0
- Reference bug 4298.
svn path=/trunk/; revision=43259
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id$
- *
+/*
* Entry Point for win32k.sys
*/
DPRINT("Destroying W32 thread TID:%d at IRQ level: %lu\n", Thread->Cid.UniqueThread, KeGetCurrentIrql());
Win32Thread->IsExiting = TRUE;
+ Win32Thread->TIF_flags |= TIF_INCLEANUP;
HOOK_DestroyThreadHooks(Thread);
UnregisterThreadHotKeys(Thread);
/* what if this co_ func crash in umode? what will clean us up then? */
UNICODE_STRING ClassName;
PANSI_STRING asWindowName;
PANSI_STRING asClassName;
+ PTHREADINFO pti;
+
+ pti = PsGetCurrentThreadWin32Thread();
+ if (pti->TIF_flags & TIF_INCLEANUP)
+ {
+ DPRINT1("Thread is in cleanup and trying to call hook %d\n", Code);
+ return 0;
+ }
ArgumentLength = sizeof(HOOKPROC_CALLBACK_ARGUMENTS) - sizeof(WCHAR)
+ ModuleName->Length;
co_IntSendMessage(Window->hSelf, WM_NCDESTROY, 0, 0);
}
MsqRemoveTimersWindow(ThreadData->MessageQueue, Window->hSelf);
+ HOOK_DestroyThreadHooks(ThreadData->pEThread); // This is needed here too!
/* flush the message queue */
MsqRemoveWindowMessagesFromQueue(Window);