mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:32:57 +00:00
Win32 structure cleanup (WIP):
- Add ppi to THREADINFO and initialize it - Initialize THREADINFO.PtiLink and DESKTOP.PtiList and link the thread to it's desktop svn path=/trunk/; revision=36810
This commit is contained in:
parent
ab0284e40d
commit
a0cd996949
3 changed files with 9 additions and 0 deletions
|
@ -27,6 +27,7 @@ typedef struct _W32THREAD
|
||||||
typedef struct _THREADINFO
|
typedef struct _THREADINFO
|
||||||
{
|
{
|
||||||
W32THREAD W32Thread;
|
W32THREAD W32Thread;
|
||||||
|
PVOID ppi; // FIXME: use PPROCESSINFO
|
||||||
PDESKTOPINFO pDeskInfo;
|
PDESKTOPINFO pDeskInfo;
|
||||||
PCLIENTINFO pClientInfo;
|
PCLIENTINFO pClientInfo;
|
||||||
LIST_ENTRY PtiLink;
|
LIST_ENTRY PtiLink;
|
||||||
|
|
|
@ -212,6 +212,7 @@ Win32kThreadCallback(struct _ETHREAD *Thread,
|
||||||
|
|
||||||
InitializeListHead(&Win32Thread->WindowListHead);
|
InitializeListHead(&Win32Thread->WindowListHead);
|
||||||
InitializeListHead(&Win32Thread->W32CallbackListHead);
|
InitializeListHead(&Win32Thread->W32CallbackListHead);
|
||||||
|
InitializeListHead(&Win32Thread->PtiLink);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* inherit the thread desktop and process window station (if not yet inherited) from the process startup
|
* inherit the thread desktop and process window station (if not yet inherited) from the process startup
|
||||||
|
@ -268,6 +269,7 @@ Win32kThreadCallback(struct _ETHREAD *Thread,
|
||||||
}
|
}
|
||||||
Win32Thread->IsExiting = FALSE;
|
Win32Thread->IsExiting = FALSE;
|
||||||
co_IntDestroyCaret(Win32Thread);
|
co_IntDestroyCaret(Win32Thread);
|
||||||
|
Win32Thread->ppi = PsGetCurrentProcessWin32Process();
|
||||||
Win32Thread->MessageQueue = MsqCreateMessageQueue(Thread);
|
Win32Thread->MessageQueue = MsqCreateMessageQueue(Thread);
|
||||||
Win32Thread->KeyboardLayout = W32kGetDefaultKeyLayout();
|
Win32Thread->KeyboardLayout = W32kGetDefaultKeyLayout();
|
||||||
if (Win32Thread->ThreadInfo)
|
if (Win32Thread->ThreadInfo)
|
||||||
|
|
|
@ -1022,6 +1022,7 @@ NtUserCreateDesktop(
|
||||||
IntGetDesktopWorkArea(DesktopObject, NULL);
|
IntGetDesktopWorkArea(DesktopObject, NULL);
|
||||||
|
|
||||||
/* Initialize some local (to win32k) desktop state. */
|
/* Initialize some local (to win32k) desktop state. */
|
||||||
|
InitializeListHead(&DesktopObject->PtiList);
|
||||||
DesktopObject->ActiveMessageQueue = NULL;
|
DesktopObject->ActiveMessageQueue = NULL;
|
||||||
ExFreePoolWithTag(DesktopName.Buffer, TAG_STRING);
|
ExFreePoolWithTag(DesktopName.Buffer, TAG_STRING);
|
||||||
|
|
||||||
|
@ -1918,9 +1919,14 @@ IntSetThreadDesktop(IN PDESKTOP DesktopObject,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Remove the thread from the old desktop's list */
|
||||||
|
RemoveEntryList(&W32Thread->PtiLink);
|
||||||
|
|
||||||
if (DesktopObject != NULL)
|
if (DesktopObject != NULL)
|
||||||
{
|
{
|
||||||
ObReferenceObject(DesktopObject);
|
ObReferenceObject(DesktopObject);
|
||||||
|
/* Insert into new desktop's list */
|
||||||
|
InsertTailList(&DesktopObject->PtiList, &W32Thread->PtiLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OldDesktop != NULL)
|
if (OldDesktop != NULL)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue