Index: subsystems/win32/win32k/ntuser/msgqueue.c =================================================================== --- subsystems/win32/win32k/ntuser/msgqueue.c (revision 43072) +++ subsystems/win32/win32k/ntuser/msgqueue.c (working copy) @@ -516,32 +516,10 @@ BOOL Accept, Freed; PLIST_ENTRY CurrentEntry; PWINDOW_OBJECT DesktopWindow = NULL; - PVOID WaitObjects[2]; - NTSTATUS WaitStatus; DECLARE_RETURN(BOOL); USER_REFERENCE_ENTRY Ref; PDESKTOPINFO Desk = NULL; - WaitObjects[1] = MessageQueue->NewMessages; - WaitObjects[0] = &HardwareMessageQueueLock; - do - { - IdlePing(); - - UserLeaveCo(); - - WaitStatus = KeWaitForMultipleObjects(2, WaitObjects, WaitAny, UserRequest, - UserMode, FALSE, NULL, NULL); - - UserEnterCo(); - - while (co_MsqDispatchOneSentMessage(MessageQueue)) - { - ; - } - } - while (NT_SUCCESS(WaitStatus) && STATUS_WAIT_0 != WaitStatus); - DesktopWindow = UserGetWindowObject(IntGetDesktopWindow()); if (DesktopWindow) @@ -573,7 +551,6 @@ RemoveEntryList(&Current->ListEntry); } IntUnLockHardwareMessageQueue(MessageQueue); - IntUnLockSystemHardwareMessageQueueLock(FALSE); *Message = Current; if (Desk) @@ -697,7 +674,6 @@ &Current->ListEntry); IntUnLockHardwareMessageQueue(MessageQueue); } - IntUnLockSystemHardwareMessageQueueLock(FALSE); *Message = Current; RETURN(TRUE); @@ -718,7 +694,6 @@ KeClearEvent(&HardwareMessageEvent); } IntUnLockSystemMessageQueue(OldIrql); - IntUnLockSystemHardwareMessageQueueLock(FALSE); RETURN(FALSE);