Author: fireball
Date: Mon Nov 2 22:31:09 2009
New Revision: 43927
URL:
http://svn.reactos.org/svn/reactos?rev=43927&view=rev
Log:
- Open and set window station for CSR's process when a first request for create
desktop comes (at this time we are sure winlogon created the window station). Examples of
fixed bugs: console windows open now, no weird crashes at shutdown.
Modified:
branches/arwinss/reactos/subsystems/win32/csrss/win32csr/desktopbg.c
Modified: branches/arwinss/reactos/subsystems/win32/csrss/win32csr/desktopbg.c
URL:
http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win3…
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/csrss/win32csr/desktopbg.c [iso-8859-1]
(original)
+++ branches/arwinss/reactos/subsystems/win32/csrss/win32csr/desktopbg.c [iso-8859-1] Mon
Nov 2 22:31:09 2009
@@ -120,8 +120,10 @@
static BOOL FASTCALL
DtbgInit()
{
- //WNDCLASSEXW Class;
- //ATOM ClassAtom;
+ //WNDCLASSEXW Class;
+ //ATOM ClassAtom;
+ static const WCHAR WinSta0[] =
{'W','i','n','S','t','a','0',0};
+ HANDLE handle;
/*
* Create the desktop window class
@@ -146,9 +148,17 @@
return FALSE;
}
#endif
- VisibleDesktopWindow = NULL;
-
- return TRUE;
+
+ /* set winstation if we don't have one yet */
+ if (!GetProcessWindowStation())
+ {
+ handle = OpenWindowStationW( WinSta0, FALSE, WINSTA_ALL_ACCESS );
+ if (handle) SetProcessWindowStation( handle );
+ }
+
+ VisibleDesktopWindow = NULL;
+
+ return TRUE;
}
HWND BackgroundWnd;