[Win32k]
authorJames Tabor <james.tabor@reactos.org>
Sun, 6 Dec 2009 23:37:09 +0000 (23:37 +0000)
committerJames Tabor <james.tabor@reactos.org>
Sun, 6 Dec 2009 23:37:09 +0000 (23:37 +0000)
- Add debug printout to show post thread message stall when posting hook messages to another thread. See bug 4926.
- Do not set current thread client hook flags, set only the requested client thread hook flag data.
- Initialize Hook head structure with thread info and desktop pointers.

svn path=/trunk/; revision=44447

reactos/subsystems/win32/win32k/ntuser/hook.c

index 7b9b545..aea544e 100644 (file)
@@ -104,8 +104,6 @@ IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinSt
         return NULL;
     }
 
-//    Hook->head.pti =?
-//    Hook->head.rpdesk
     Hook->head.h = Handle;
     Hook->Thread = Thread;
     Hook->HookId = HookId;
@@ -116,7 +114,11 @@ IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinSt
         ASSERT(W32Thread != NULL);
         W32Thread->fsHooks |= HOOKID_TO_FLAG(HookId);
 
-        GetWin32ClientInfo()->fsHooks = W32Thread->fsHooks;
+        if (W32Thread->pClientInfo)
+           W32Thread->pClientInfo->fsHooks = W32Thread->fsHooks;
+
+        Hook->head.pti = W32Thread;
+        Hook->head.rpdesk = W32Thread->Desktop;
     }
 
     RtlInitUnicodeString(&Hook->ModuleName, NULL);
@@ -347,6 +349,7 @@ co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam)
 
     if ((Hook->Thread != PsGetCurrentThread()) && (Hook->Thread != NULL))
     {
+        DPRINT1("\nHook found by Id and posted to Thread! %d\n",HookId );
         /* Post it in message queue. */
         return IntCallLowLevelHook(Hook, Code, wParam, lParam);
     }