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 NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
|
||||||
#define HOOKID_TO_INDEX(HookId) (HookId - WH_MINHOOK)
|
#define HOOKID_TO_INDEX(HookId) (HookId - WH_MINHOOK)
|
||||||
#define HOOKID_TO_FLAG(HookId) (1 << ((HookId) + 1))
|
#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
|
typedef struct tagHOOKTABLE
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,13 +42,13 @@ typedef struct _THREADINFO
|
||||||
HANDLE hDesktop;
|
HANDLE hDesktop;
|
||||||
UINT cPaintsReady; /* Count of paints pending. */
|
UINT cPaintsReady; /* Count of paints pending. */
|
||||||
UINT cTimersReady; /* Count of timers pending. */
|
UINT cTimersReady; /* Count of timers pending. */
|
||||||
|
ULONG fsHooks;
|
||||||
LIST_ENTRY PtiLink;
|
LIST_ENTRY PtiLink;
|
||||||
|
|
||||||
LIST_ENTRY WindowListHead;
|
LIST_ENTRY WindowListHead;
|
||||||
LIST_ENTRY W32CallbackListHead;
|
LIST_ENTRY W32CallbackListHead;
|
||||||
BOOLEAN IsExiting;
|
BOOLEAN IsExiting;
|
||||||
SINGLE_LIST_ENTRY ReferencesList;
|
SINGLE_LIST_ENTRY ReferencesList;
|
||||||
ULONG Hooks;
|
|
||||||
PW32THREADINFO ThreadInfo;
|
PW32THREADINFO ThreadInfo;
|
||||||
} THREADINFO, *PTHREADINFO;
|
} THREADINFO, *PTHREADINFO;
|
||||||
|
|
||||||
|
|
|
@ -108,12 +108,12 @@ IntAddHook(PETHREAD Thread, int HookId, BOOLEAN Global, PWINSTATION_OBJECT WinSt
|
||||||
{
|
{
|
||||||
W32Thread = ((PTHREADINFO)Thread->Tcb.Win32Thread);
|
W32Thread = ((PTHREADINFO)Thread->Tcb.Win32Thread);
|
||||||
ASSERT(W32Thread != NULL);
|
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)
|
if (W32Thread->ThreadInfo != NULL)
|
||||||
W32Thread->ThreadInfo->fsHooks = W32Thread->Hooks;
|
W32Thread->ThreadInfo->fsHooks = W32Thread->fsHooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
RtlInitUnicodeString(&Hook->ModuleName, NULL);
|
RtlInitUnicodeString(&Hook->ModuleName, NULL);
|
||||||
|
@ -222,12 +222,12 @@ IntRemoveHook(PHOOK Hook, PWINSTATION_OBJECT WinStaObj, BOOL TableAlreadyLocked)
|
||||||
|
|
||||||
W32Thread = ((PTHREADINFO)Hook->Thread->Tcb.Win32Thread);
|
W32Thread = ((PTHREADINFO)Hook->Thread->Tcb.Win32Thread);
|
||||||
ASSERT(W32Thread != NULL);
|
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)
|
if (W32Thread->ThreadInfo != NULL)
|
||||||
W32Thread->ThreadInfo->fsHooks = W32Thread->Hooks;
|
W32Thread->ThreadInfo->fsHooks = W32Thread->fsHooks;
|
||||||
|
|
||||||
if (0 != Table->Counts[HOOKID_TO_INDEX(Hook->HookId)])
|
if (0 != Table->Counts[HOOKID_TO_INDEX(Hook->HookId)])
|
||||||
{
|
{
|
||||||
|
|
|
@ -524,8 +524,9 @@ GetW32ThreadInfo(VOID)
|
||||||
|
|
||||||
/* initialize it */
|
/* initialize it */
|
||||||
ti->ppi = GetW32ProcessInfo();
|
ti->ppi = GetW32ProcessInfo();
|
||||||
ti->fsHooks = W32Thread->Hooks;
|
ti->fsHooks = W32Thread->fsHooks;
|
||||||
W32Thread->pcti = &ti->ClientThreadInfo;
|
// W32Thread->pcti = &ti->ClientThreadInfo;
|
||||||
|
W32Thread->pcti = NULL; // FIXME
|
||||||
if (W32Thread->Desktop != NULL)
|
if (W32Thread->Desktop != NULL)
|
||||||
{
|
{
|
||||||
ti->pDeskInfo = W32Thread->Desktop->DesktopInfo;
|
ti->pDeskInfo = W32Thread->Desktop->DesktopInfo;
|
||||||
|
|
Loading…
Reference in a new issue