mirror of
https://github.com/reactos/reactos.git
synced 2025-06-26 18:39:44 +00:00
[NtUser]
- Use desktop thread list to search for related active desktop threads. See CORE-11983. svn path=/trunk/; revision=72699
This commit is contained in:
parent
6e3b5e1ee2
commit
cb199a866c
1 changed files with 19 additions and 13 deletions
|
@ -450,31 +450,37 @@ HKL FASTCALL
|
||||||
UserGetKeyboardLayout(
|
UserGetKeyboardLayout(
|
||||||
DWORD dwThreadId)
|
DWORD dwThreadId)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
|
||||||
PETHREAD pThread;
|
|
||||||
PTHREADINFO pti;
|
PTHREADINFO pti;
|
||||||
|
PLIST_ENTRY ListEntry;
|
||||||
PKL pKl;
|
PKL pKl;
|
||||||
HKL hKl;
|
|
||||||
|
pti = PsGetCurrentThreadWin32Thread();
|
||||||
|
|
||||||
if (!dwThreadId)
|
if (!dwThreadId)
|
||||||
{
|
{
|
||||||
pti = PsGetCurrentThreadWin32Thread();
|
|
||||||
pKl = pti->KeyboardLayout;
|
pKl = pti->KeyboardLayout;
|
||||||
return pKl ? pKl->hkl : NULL;
|
return pKl ? pKl->hkl : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = PsLookupThreadByThreadId((HANDLE)(DWORD_PTR)dwThreadId, &pThread);
|
ListEntry = pti->rpdesk->PtiList.Flink;
|
||||||
if (!NT_SUCCESS(Status))
|
|
||||||
|
//
|
||||||
|
// Search the Desktop Thread list for related Desktop active Threads.
|
||||||
|
//
|
||||||
|
while(ListEntry != &pti->rpdesk->PtiList)
|
||||||
{
|
{
|
||||||
EngSetLastError(ERROR_INVALID_PARAMETER);
|
pti = CONTAINING_RECORD(ListEntry, THREADINFO, PtiLink);
|
||||||
return NULL;
|
|
||||||
|
if (PsGetThreadId(pti->pEThread) == UlongToHandle(dwThreadId))
|
||||||
|
{
|
||||||
|
pKl = pti->KeyboardLayout;
|
||||||
|
return pKl ? pKl->hkl : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
pti = PsGetThreadWin32Thread(pThread);
|
ListEntry = ListEntry->Flink;
|
||||||
pKl = pti->KeyboardLayout;
|
}
|
||||||
hKl = pKl ? pKl->hkl : NULL;
|
|
||||||
ObDereferenceObject(pThread);
|
return NULL;
|
||||||
return hKl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue