mirror of
https://github.com/reactos/reactos.git
synced 2025-04-25 08:00:24 +00:00
- Move update thread information hooks.
svn path=/trunk/; revision=40891
This commit is contained in:
parent
173cb6b1d0
commit
85d4ab3b58
4 changed files with 11 additions and 10 deletions
|
@ -18,7 +18,7 @@ typedef struct tagHOOK
|
|||
#define NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
|
||||
#define HOOKID_TO_INDEX(HookId) (HookId - WH_MINHOOK)
|
||||
#define HOOKID_TO_FLAG(HookId) (1 << ((HookId) + 1))
|
||||
#define ISITHOOKED(HookId) (((PTHREADINFO)PsGetCurrentThreadWin32Thread())->Hooks & HOOKID_TO_FLAG(HookId))
|
||||
#define ISITHOOKED(HookId) (((PTHREADINFO)PsGetCurrentThreadWin32Thread())->fsHooks & HOOKID_TO_FLAG(HookId))
|
||||
|
||||
typedef struct tagHOOKTABLE
|
||||
{
|
||||
|
|
|
@ -42,13 +42,13 @@ typedef struct _THREADINFO
|
|||
HANDLE hDesktop;
|
||||
UINT cPaintsReady; /* Count of paints pending. */
|
||||
UINT cTimersReady; /* Count of timers pending. */
|
||||
ULONG fsHooks;
|
||||
LIST_ENTRY PtiLink;
|
||||
|
||||
LIST_ENTRY WindowListHead;
|
||||
LIST_ENTRY W32CallbackListHead;
|
||||
BOOLEAN IsExiting;
|
||||
SINGLE_LIST_ENTRY ReferencesList;
|
||||
ULONG Hooks;
|
||||
PW32THREADINFO ThreadInfo;
|
||||
} THREADINFO, *PTHREADINFO;
|
||||
|
||||
|
|
|
@ -108,12 +108,12 @@ IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinSt
|
|||
{
|
||||
W32Thread = ((PTHREADINFO)Thread->Tcb.Win32Thread);
|
||||
ASSERT(W32Thread != NULL);
|
||||
W32Thread->Hooks |= HOOKID_TO_FLAG(HookId);
|
||||
W32Thread->fsHooks |= HOOKID_TO_FLAG(HookId);
|
||||
|
||||
GetWin32ClientInfo()->fsHooks = W32Thread->Hooks;
|
||||
GetWin32ClientInfo()->fsHooks = W32Thread->fsHooks;
|
||||
|
||||
if (W32Thread->ThreadInfo != NULL)
|
||||
W32Thread->ThreadInfo->fsHooks = W32Thread->Hooks;
|
||||
W32Thread->ThreadInfo->fsHooks = W32Thread->fsHooks;
|
||||
}
|
||||
|
||||
RtlInitUnicodeString(&Hook->ModuleName, NULL);
|
||||
|
@ -222,12 +222,12 @@ IntRemoveHook(PHOOK Hook, PWINSTATION_OBJECT WinStaObj, BOOL TableAlreadyLocked)
|
|||
|
||||
W32Thread = ((PTHREADINFO)Hook->Thread->Tcb.Win32Thread);
|
||||
ASSERT(W32Thread != NULL);
|
||||
W32Thread->Hooks &= ~HOOKID_TO_FLAG(Hook->HookId);
|
||||
W32Thread->fsHooks &= ~HOOKID_TO_FLAG(Hook->HookId);
|
||||
|
||||
GetWin32ClientInfo()->fsHooks = W32Thread->Hooks;
|
||||
GetWin32ClientInfo()->fsHooks = W32Thread->fsHooks;
|
||||
|
||||
if (W32Thread->ThreadInfo != NULL)
|
||||
W32Thread->ThreadInfo->fsHooks = W32Thread->Hooks;
|
||||
W32Thread->ThreadInfo->fsHooks = W32Thread->fsHooks;
|
||||
|
||||
if (0 != Table->Counts[HOOKID_TO_INDEX(Hook->HookId)])
|
||||
{
|
||||
|
|
|
@ -524,8 +524,9 @@ GetW32ThreadInfo(VOID)
|
|||
|
||||
/* initialize it */
|
||||
ti->ppi = GetW32ProcessInfo();
|
||||
ti->fsHooks = W32Thread->Hooks;
|
||||
W32Thread->pcti = &ti->ClientThreadInfo;
|
||||
ti->fsHooks = W32Thread->fsHooks;
|
||||
// W32Thread->pcti = &ti->ClientThreadInfo;
|
||||
W32Thread->pcti = NULL; // FIXME
|
||||
if (W32Thread->Desktop != NULL)
|
||||
{
|
||||
ti->pDeskInfo = W32Thread->Desktop->DesktopInfo;
|
||||
|
|
Loading…
Reference in a new issue