- 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
This commit is contained in:
James Tabor 2009-12-06 23:37:09 +00:00
parent 6e365041b7
commit 8b6f274b1b

View 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);
}