diff --git a/reactos/subsystems/win32/win32k/ntuser/desktop.c b/reactos/subsystems/win32/win32k/ntuser/desktop.c index 00abc978cf7..d41f0426cd8 100644 --- a/reactos/subsystems/win32/win32k/ntuser/desktop.c +++ b/reactos/subsystems/win32/win32k/ntuser/desktop.c @@ -1243,11 +1243,21 @@ NtUserCloseDesktop(HDESK hDesktop) { PDESKTOP Object; NTSTATUS Status; + PTHREADINFO pti; DECLARE_RETURN(BOOL); + pti = PsGetCurrentThreadWin32Thread(); + TRACE("Enter NtUserCloseDesktop\n"); UserEnterExclusive(); + if( hDesktop == pti->hdesk || hDesktop == pti->ppi->hdeskStartup) + { + ERR("Attempted to close thread desktop\n"); + EngSetLastError(ERROR_BUSY); + RETURN(FALSE); + } + TRACE("About to close desktop handle (0x%X)\n", hDesktop); Status = IntValidateDesktopHandle(