Close the desktop handle after getting the object pointer.

svn path=/trunk/; revision=14563
This commit is contained in:
Hartmut Birr 2005-04-09 17:10:25 +00:00
parent a16ba46cd2
commit 3985d6c980

View file

@ -195,23 +195,22 @@ Win32kThreadCallback (struct _ETHREAD *Thread,
}
}
Win32Thread->hDesktop = hDesk;
Status = ObReferenceObjectByHandle(hDesk,
0,
ExDesktopObjectType,
KernelMode,
(PVOID*)&Win32Thread->Desktop,
NULL);
if(!NT_SUCCESS(Status))
if (hDesk != NULL)
{
DPRINT1("Unable to reference thread desktop handle 0x%x\n", hDesk);
Win32Thread->Desktop = NULL;
Status = ObReferenceObjectByHandle(hDesk,
0,
ExDesktopObjectType,
KernelMode,
(PVOID*)&Win32Thread->Desktop,
NULL);
NtClose(hDesk);
if(!NT_SUCCESS(Status))
{
DPRINT1("Unable to reference thread desktop handle 0x%x\n", hDesk);
Win32Thread->Desktop = NULL;
}
}
}
Win32Thread->IsExiting = FALSE;
IntDestroyCaret(Win32Thread);
Win32Thread->MessageQueue = MsqCreateMessageQueue(Thread);