- Fix the broken references.

svn path=/trunk/; revision=60884
This commit is contained in:
James Tabor 2013-11-08 13:28:43 +00:00
parent 74a36d7889
commit 9da54eeefb

View file

@ -631,7 +631,11 @@ co_MsqInsertMouseMessage(MSG* Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook
} }
else else
{ {
//if (!IntGetCaptureWindow()) ptiLastInput = pti; if (!IntGetCaptureWindow())
{
// ERR("ptiLastInput is set\n");
// ptiLastInput = pti; // Once this is set during Reboot or Shutdown, this prevents the exit window having foreground.
}
TRACE("Posting mouse message to hwnd=%p!\n", UserHMGetHandle(pwnd)); TRACE("Posting mouse message to hwnd=%p!\n", UserHMGetHandle(pwnd));
MsqPostMessage(pti, Msg, TRUE, QS_MOUSEBUTTON, 0); MsqPostMessage(pti, Msg, TRUE, QS_MOUSEBUTTON, 0);
} }
@ -1104,8 +1108,6 @@ co_MsqSendMessage(PTHREADINFO ptirec,
{ {
PVOID WaitObjects[3]; PVOID WaitObjects[3];
ObReferenceObject(ptirec->pEThread);
WaitObjects[0] = &CompletionEvent; // Wait 0 WaitObjects[0] = &CompletionEvent; // Wait 0
WaitObjects[1] = pti->pEventQueueServer; // Wait 1 WaitObjects[1] = pti->pEventQueueServer; // Wait 1
WaitObjects[2] = ptirec->pEThread; // Wait 2 WaitObjects[2] = ptirec->pEThread; // Wait 2
@ -1162,14 +1164,10 @@ co_MsqSendMessage(PTHREADINFO ptirec,
TRACE("MsqSendMessage timed out 2\n"); TRACE("MsqSendMessage timed out 2\n");
break; break;
} }
/*if (WaitStatus == STATUS_WAIT_1)
{
ERR("Event hit\n");
}*/
// Receiving thread passed on and left us hanging with issues still pending. // Receiving thread passed on and left us hanging with issues still pending.
if (WaitStatus == STATUS_WAIT_2) if ( WaitStatus == STATUS_WAIT_2 )
{ {
ERR("Thread woken up dead!\n"); ERR("Receiving Thread woken up dead!\n");
Entry = pti->DispatchingMessagesHead.Flink; Entry = pti->DispatchingMessagesHead.Flink;
while (Entry != &pti->DispatchingMessagesHead) while (Entry != &pti->DispatchingMessagesHead)
{ {
@ -1189,11 +1187,10 @@ co_MsqSendMessage(PTHREADINFO ptirec,
; ;
} }
while (NT_SUCCESS(WaitStatus) && WaitStatus == STATUS_WAIT_1); while (NT_SUCCESS(WaitStatus) && WaitStatus == STATUS_WAIT_1);
ObDereferenceObject(ptirec->pEThread);
} }
if(WaitStatus != STATUS_TIMEOUT) if(WaitStatus != STATUS_TIMEOUT)
*uResult = (STATUS_WAIT_0 == WaitStatus ? Result : -1); if (uResult) *uResult = (STATUS_WAIT_0 == WaitStatus ? Result : -1);
return WaitStatus; return WaitStatus;
} }