[ros-diffs] [fireball] 43927: - 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.

fireball at svn.reactos.org fireball at svn.reactos.org
Mon Nov 2 22:31:09 CET 2009


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/csrss/win32csr/desktopbg.c?rev=43927&r1=43926&r2=43927&view=diff
==============================================================================
--- 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;




More information about the Ros-diffs mailing list