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/win32... ============================================================================== --- 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;