Now that the console server works fine, move it into its real place (as in Windows), that is, inside winsrv.dll, instead of hosting it in consrv.dll.
svn path=/trunk/; revision=59461
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Optional",0x00010000,"Posix"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Posix",0x00020000,"%SystemRoot%\system32\psxss.exe"
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Required",0x00010000,"Debug","Windows"
-HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Windows",0x00020000,"%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,12288,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=consrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16"
+HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems","Windows",0x00020000,"%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,12288,512 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off MaxRequestThreads=16"
; WOW Support
HKLM,"SYSTEM\CurrentControlSet\Control\Wow","",0x00000000,""
include_directories(
- ${REACTOS_SOURCE_DIR}/win32ss/user/consrv
- ${REACTOS_SOURCE_DIR}/win32ss/user/consrv/frontends/gui)
+ ${REACTOS_SOURCE_DIR}/win32ss/user/winsrv/consrv
+ ${REACTOS_SOURCE_DIR}/win32ss/user/winsrv/consrv/frontends/gui)
spec2def(console.dll console.spec)
add_subdirectory(gdi/gdi32)
add_subdirectory(reactx)
-add_subdirectory(user/consrv)
add_subdirectory(user/user32)
add_subdirectory(user/winsrv)
+++ /dev/null
-
-remove_definitions(-D_WIN32_WINNT=0x502)
-add_definitions(-D_WIN32_WINNT=0x600)
-
-include_directories(
- ${REACTOS_SOURCE_DIR}/include/reactos/subsys
- ${REACTOS_SOURCE_DIR}/win32ss/include)
-
-spec2def(consrv.dll consrv.spec)
-
-list(APPEND SOURCE
- alias.c
- coninput.c
- conoutput.c
- console.c
- frontendctl.c
- handle.c
- init.c
- lineinput.c
- settings.c
- condrv/coninput.c
- condrv/conoutput.c
- condrv/console.c
- condrv/dummyfrontend.c
- condrv/graphics.c
- condrv/text.c
- frontends/input.c
- frontends/gui/guiterm.c
- frontends/gui/guisettings.c
- frontends/gui/graphics.c
- frontends/gui/text.c
- frontends/tui/tuiterm.c
- ${CMAKE_CURRENT_BINARY_DIR}/consrv.def)
-
-add_library(consrv SHARED
- ${SOURCE}
- consrv.rc)
-
-#
-# Explicitely enable MS extensions to be able to use unnamed (anonymous) nested structs.
-#
-# FIXME: http://www.cmake.org/Bug/view.php?id=12998
-if(MSVC)
- ## NOTE: No need to specify it as we use MSVC :)
- ##add_target_compile_flags(consrv "/Ze")
- #set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "/Ze")
-else()
- #add_target_compile_flags(consrv "-fms-extensions")
- set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-fms-extensions")
-endif()
-
-target_link_libraries(consrv win32ksys ${PSEH_LIB} uuid) # win32ksys because of NtUser...()
-
-set_module_type(consrv win32dll UNICODE)
-
-add_importlibs(consrv psapi msvcrt kernel32 ntdll csrsrv)
-add_delay_importlibs(consrv user32 gdi32 advapi32 ole32)
-
-add_dependencies(consrv bugcodes)
-add_cd_file(TARGET consrv DESTINATION reactos/system32 FOR all)
+++ /dev/null
-#include <windef.h>
-#include <winuser.h>
-#include "resource.h"
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-
-#define REACTOS_VERSION_DLL
-#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Console Server & Terminal Emulator DLL"
-#define REACTOS_STR_INTERNAL_NAME "consrv"
-#define REACTOS_STR_ORIGINAL_FILENAME "consrv.dll"
-#include <reactos/version.rc>
-
-#include "rsrc.rc"
-
-#include "frontends/frontends.rc"
+++ /dev/null
-@ stdcall ConServerDllInitialization(ptr)
spec2def(winsrv.dll winsrv.spec)
+# The components
+include(consrv.cmake)
+include(usersrv.cmake)
+
list(APPEND SOURCE
- harderror.c
init.c
- register.c
- shutdown.c
winsrv.rc
${CMAKE_CURRENT_BINARY_DIR}/winsrv.def)
add_library(winsrv SHARED ${SOURCE})
+# Add the components
+target_link_libraries(winsrv consrv usersrv)
target_link_libraries(winsrv win32ksys ${PSEH_LIB}) # win32ksys because of NtUser...()
set_module_type(winsrv win32dll UNICODE)
--- /dev/null
+
+remove_definitions(-D_WIN32_WINNT=0x502)
+add_definitions(-D_WIN32_WINNT=0x600)
+
+include_directories(consrv)
+
+list(APPEND CONSRV_SOURCE
+ consrv/alias.c
+ consrv/coninput.c
+ consrv/conoutput.c
+ consrv/console.c
+ consrv/frontendctl.c
+ consrv/handle.c
+ consrv/init.c
+ consrv/lineinput.c
+ consrv/settings.c
+ consrv/condrv/coninput.c
+ consrv/condrv/conoutput.c
+ consrv/condrv/console.c
+ consrv/condrv/dummyfrontend.c
+ consrv/condrv/graphics.c
+ consrv/condrv/text.c
+ consrv/frontends/input.c
+ consrv/frontends/gui/guiterm.c
+ consrv/frontends/gui/guisettings.c
+ consrv/frontends/gui/graphics.c
+ consrv/frontends/gui/text.c
+ consrv/frontends/tui/tuiterm.c
+ # consrv/consrv.rc
+ )
+
+#
+# Explicitely enable MS extensions to be able to use unnamed (anonymous) nested structs.
+#
+# FIXME: http://www.cmake.org/Bug/view.php?id=12998
+if(MSVC)
+ ## NOTE: No need to specify it as we use MSVC :)
+ ##add_target_compile_flags(consrv "/Ze")
+ #set_source_files_properties(${CONSRV_SOURCE} PROPERTIES COMPILE_FLAGS "/Ze")
+else()
+ #add_target_compile_flags(consrv "-fms-extensions")
+ set_source_files_properties(${CONSRV_SOURCE} PROPERTIES COMPILE_FLAGS "-fms-extensions")
+endif()
+
+add_library(consrv ${CONSRV_SOURCE})
+#add_object_library(consrv ${CONSRV_SOURCE})
+
+add_importlibs(consrv psapi) # And the default ones from winsrv
+add_delay_importlibs(consrv ole32) # And the default ones from winsrv
+target_link_libraries(consrv uuid) # And the default ones from winsrv
+
+set_module_type(consrv module UNICODE)
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/alias.c
+ * FILE: win32ss/user/winsrv/consrv/alias.c
* PURPOSE: Alias support functions
* PROGRAMMERS: Christoph Wittich
* Johannes Anderwald
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/alias.h
+ * FILE: win32ss/user/winsrv/consrv/alias.h
* PURPOSE: Alias support functions
* PROGRAMMERS: Christoph Wittich
* Johannes Anderwald
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/api.h
+ * FILE: win32ss/user/winsrv/consrv/api.h
* PURPOSE: Public server APIs definitions
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Driver DLL
- * FILE: win32ss/user/consrv/condrv/coninput.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/coninput.c
* PURPOSE: Console Input functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "handle.h"
#include "lineinput.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Driver DLL
- * FILE: win32ss/user/consrv/condrv/conoutput.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/conoutput.c
* PURPOSE: General Console Output Functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "console.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "conoutput.h"
#include "handle.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Driver DLL
- * FILE: win32ss/user/consrv/condrv/console.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/console.c
* PURPOSE: Console Management Functions
* PROGRAMMERS: Gé van Geldorp
* Jeffrey Morlan
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "handle.h"
#include "procinit.h"
#include "alias.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/condrv/dummyfrontend.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/dummyfrontend.c
* PURPOSE: Dummy Terminal Front-End used when no frontend
* is attached to the specified console.
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Driver DLL
- * FILE: win32ss/user/consrv/condrv/graphics.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/graphics.c
* PURPOSE: Console Output Functions for graphics-mode screen-buffers
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "conoutput.h"
#include "handle.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Driver DLL
- * FILE: win32ss/user/consrv/condrv/text.c
+ * FILE: win32ss/user/winsrv/consrv/condrv/text.c
* PURPOSE: Console Output Functions for text-mode screen-buffers
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "conoutput.h"
#include "handle.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/coninput.c
+ * FILE: win32ss/user/winsrv/consrv/coninput.c
* PURPOSE: Console Input functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "handle.h"
#include "lineinput.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/coninput.h
+ * FILE: win32ss/user/winsrv/consrv/coninput.h
* PURPOSE: Console Input functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/conoutput.c
+ * FILE: win32ss/user/winsrv/consrv/conoutput.c
* PURPOSE: General Console Output Functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "console.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "conoutput.h"
#include "handle.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/conoutput.h
+ * FILE: win32ss/user/winsrv/consrv/conoutput.h
* PURPOSE: Console Output functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/console.c
+ * FILE: win32ss/user/winsrv/consrv/console.c
* PURPOSE: Console Management Functions
* PROGRAMMERS: Gé van Geldorp
* Jeffrey Morlan
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "handle.h"
#include "procinit.h"
#include "alias.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/console.h
+ * FILE: win32ss/user/winsrv/consrv/console.h
* PURPOSE: Console Initialization Functions
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/consrv.h
+ * FILE: win32ss/user/winsrv/consrv/consrv.h
* PURPOSE: Main header - Definitions
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
--- /dev/null
+#include <windef.h>
+#include <winuser.h>
+#include "resource.h"
+
+#include "rsrc.rc"
+#include "frontends/frontends.rc"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontendctl.c
+ * FILE: win32ss/user/winsrv/consrv/frontendctl.c
* PURPOSE: Terminal Front-Ends Control
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "conoutput.h"
#include "console.h"
#include "handle.h"
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/consolecpl.h
+ * FILE: win32ss/user/winsrv/consrv/consolecpl.h
* PURPOSE: GUI front-end settings management - Header for console.dll
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/gui/graphics.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/gui/graphics.c
* PURPOSE: GUI Terminal Front-End - Support for graphics-mode screen-buffers
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/gui/guisettings.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/gui/guisettings.c
* PURPOSE: GUI Terminal Front-End Settings Management
* PROGRAMMERS: Johannes Anderwald
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/guisettings.h
+ * FILE: win32ss/user/winsrv/consrv/guisettings.h
* PURPOSE: GUI front-end settings management
* PROGRAMMERS: Johannes Anderwald
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/gui/guiterm.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/gui/guiterm.c
* PURPOSE: GUI Terminal Front-End
* PROGRAMMERS: Gé van Geldorp
* Johannes Anderwald
/* Not defined in any header file */
-// extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
-// From win32ss/user/win32csr/dllmain.c
-VOID
-WINAPI
-PrivateCsrssManualGuiCheck(LONG Check)
-{
- NtUserCallOneParam(Check, ONEPARAM_ROUTINE_CSRSS_GUICHECK);
-}
+extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
+// See winsrv/usersrv/init.c line 234
+
/* GLOBALS ********************************************************************/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/gui/guiterm.h
+ * FILE: win32ss/user/winsrv/consrv/frontends/gui/guiterm.h
* PURPOSE: GUI Terminal Front-End
* PROGRAMMERS: Gé van Geldorp
* Johannes Anderwald
/*
* PROJECT: ReactOS CSRSS subsystem
- * FILE: win32ss/user/consrv/lang/bg-BG.rc
+ * FILE: win32ss/user/winsrv/consrv/lang/bg-BG.rc
* PURPOSE: Bulgarian resource file
*/
/*
- * FILE: win32ss/user/consrv/lang/cs-CZ.rc
+ * FILE: win32ss/user/winsrv/consrv/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2011-04-09
*/
/*
* PROJECT: ReactOS Client/Server Runtime subsystem
* LICENSE: GPL - See COPYING in the top level directory
-* FILE: win32ss/user/consrv/lang/it-IT.rc
+* FILE: win32ss/user/winsrv/consrv/lang/it-IT.rc
* PURPOSE: Italian Translation
* PROGRAMMERS:
* Copyright (C) 2007 Daniele Forsi (dforsi at gmail.com) Italian Translation
/*
- * FILE: win32ss/user/consrv/lang/ro-RO.rc
+ * FILE: win32ss/user/winsrv/consrv/lang/ro-RO.rc
* ReactOS Project (http://www.reactos.org)
* TRANSLATOR: Fulea Ștefan (PM on ReactOS Forum at fulea.stefan)
* CHANGE LOG: 2011-10-16 initial translation
/*
* PROJECT: ReactOS CSRSS subsystem
- * FILE: win32ss/user/consrv/lang/sv-SE.rc
+ * FILE: win32ss/user/winsrv/consrv/lang/sv-SE.rc
* PURPOSE: Swedish resource file
* Translation: Jaix Bly
*/
/*
* PROJECT: ReactOS CSRSS subsystem
* LICENSE: GPL - See COPYING in the top level directory
- * FILE: win32ss/user/consrv/lang/uk-UA.rc
+ * FILE: win32ss/user/winsrv/consrv/lang/uk-UA.rc
* PURPOSE: Ukraianian resource file
* TRANSLATOR: Artem Reznikov
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/resource.h
+ * FILE: win32ss/user/winsrv/consrv/resource.h
* PURPOSE: Resource #defines
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/gui/text.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/gui/text.c
* PURPOSE: GUI Terminal Front-End - Support for text-mode screen-buffers
* PROGRAMMERS: Gé van Geldorp
* Johannes Anderwald
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/input.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/input.c
* PURPOSE: Common Front-Ends Input functions
* PROGRAMMERS: Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "coninput.h"
#define NDEBUG
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/tui/tuiterm.c
+ * FILE: win32ss/user/winsrv/consrv/frontends/tui/tuiterm.c
* PURPOSE: TUI Terminal Front-End - Virtual Consoles...
* PROGRAMMERS: David Welch
* Gé van Geldorp
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/frontends/tui/tuiterm.h
+ * FILE: win32ss/user/winsrv/consrv/frontends/tui/tuiterm.h
* PURPOSE: TUI Terminal Front-End
* PROGRAMMERS: David Welch
* Gé van Geldorp
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/handle.c
+ * FILE: win32ss/user/winsrv/consrv/handle.c
* PURPOSE: Console I/O Handles functions
* PROGRAMMERS: David Welch
* Jeffrey Morlan
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "handle.h"
#include "include/console.h"
#include "console.h"
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/handle.h
+ * FILE: win32ss/user/winsrv/consrv/handle.h
* PURPOSE: Console I/O Handles functions
* PROGRAMMERS: David Welch
* Jeffrey Morlan
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/heap.h
+ * FILE: win32ss/user/winsrv/consrv/heap.h
* PURPOSE: Heap Helpers
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/include/conio.h
+ * FILE: win32ss/user/winsrv/consrv/include/conio.h
* PURPOSE: Public Console I/O Interface
* PROGRAMMERS: Gé van Geldorp
* Jeffrey Morlan
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/conio.h
+ * FILE: win32ss/user/winsrv/consrv/conio.h
* PURPOSE: Internal Console I/O Interface
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/include/console.h
+ * FILE: win32ss/user/winsrv/consrv/include/console.h
* PURPOSE: Public Console Management Interface
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/include/settings.h
+ * FILE: win32ss/user/winsrv/consrv/include/settings.h
* PURPOSE: Public Console Settings Management Interface
* PROGRAMMERS: Johannes Anderwald
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/init.c
+ * FILE: win32ss/user/winsrv/consrv/init.c
* PURPOSE: Initialization
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
return STATUS_SUCCESS;
}
-BOOL
-WINAPI
-DllMain(IN HINSTANCE hInstanceDll,
- IN DWORD dwReason,
- IN LPVOID lpReserved)
-{
- UNREFERENCED_PARAMETER(hInstanceDll);
- UNREFERENCED_PARAMETER(dwReason);
- UNREFERENCED_PARAMETER(lpReserved);
- return TRUE;
-}
-
/* EOF */
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/lineinput.c
+ * FILE: win32ss/user/winsrv/consrv/lineinput.c
* PURPOSE: Console line input functions
* PROGRAMMERS: Jeffrey Morlan
*/
#include "consrv.h"
#include "console.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#define NDEBUG
#include <debug.h>
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/lineinput.c
+ * FILE: win32ss/user/winsrv/consrv/lineinput.c
* PURPOSE: Console line input functions
* PROGRAMMERS: Jeffrey Morlan
*/
/*
* LICENSE: GPL - See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/procinit.h
+ * FILE: win32ss/user/winsrv/consrv/procinit.h
* PURPOSE: Functions for console processes initialization
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/resource.h
+ * FILE: win32ss/user/winsrv/consrv/resource.h
* PURPOSE: Resource #defines
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
- * FILE: win32ss/user/consrv/settings.c
+ * FILE: win32ss/user/winsrv/consrv/settings.c
* PURPOSE: Console settings management
* PROGRAMMERS: Johannes Anderwald
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
#include "consrv.h"
#include "include/conio.h"
-#include "conio.h"
+#include "include/conio2.h"
#include "include/settings.h"
#include <stdio.h> // for swprintf
/* INCLUDES *******************************************************************/
-#include "winsrv.h"
-#include "api.h"
+/* PSDK Headers */
+#include <stdarg.h>
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#include <windef.h>
+#include <winuser.h>
#define NDEBUG
#include <debug.h>
-/* GLOBALS ********************************************************************/
-HINSTANCE UserServerDllInstance = NULL;
-
-/* Memory */
-HANDLE UserServerHeap = NULL; // Our own heap.
-
-// Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
-PCSR_API_ROUTINE UserServerApiDispatchTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
-{
- SrvExitWindowsEx,
- // SrvEndTask,
- // SrvLogon,
- SrvRegisterServicesProcess, // Not present in Win7
- // SrvActivateDebugger,
- // SrvGetThreadConsoleDesktop, // Not present in Win7
- // SrvDeviceEvent,
- SrvRegisterLogonProcess, // Not present in Win7
- // SrvCreateSystemThreads,
- // SrvRecordShutdownReason,
- // SrvCancelShutdown, // Added in Vista
- // SrvConsoleHandleOperation, // Added in Win7
- // SrvGetSetShutdownBlockReason, // Added in Vista
-};
-
-BOOLEAN UserServerApiServerValidTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
-{
- FALSE, // SrvExitWindowsEx
- // FALSE, // SrvEndTask
- // FALSE, // SrvLogon
- FALSE, // SrvRegisterServicesProcess
- // FALSE, // SrvActivateDebugger
- // TRUE, // SrvGetThreadConsoleDesktop
- // FALSE, // SrvDeviceEvent
- FALSE, // SrvRegisterLogonProcess
- // FALSE, // SrvCreateSystemThreads
- // FALSE, // SrvRecordShutdownReason
- // FALSE, // SrvCancelShutdown
- // FALSE, // SrvConsoleHandleOperation
- // FALSE, // SrvGetSetShutdownBlockReason
-};
-
-PCHAR UserServerApiNameTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
-{
- "SrvExitWindowsEx",
- // "SrvEndTask",
- // "SrvLogon",
- "SrvRegisterServicesProcess",
- // "SrvActivateDebugger",
- // "SrvGetThreadConsoleDesktop",
- // "SrvDeviceEvent",
- "SrvRegisterLogonProcess",
- // "SrvCreateSystemThreads",
- // "SrvRecordShutdownReason",
- // "SrvCancelShutdown",
- // "SrvConsoleHandleOperation",
- // "SrvGetSetShutdownBlockReason",
-};
-
-
-/* FUNCTIONS ******************************************************************/
-
-// PUSER_SOUND_SENTRY. Used in basesrv.dll
-BOOL WINAPI _UserSoundSentry(VOID)
-{
- // TODO: Do something.
- return TRUE;
-}
-
-ULONG
-InitializeVideoAddressSpace(VOID)
-{
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING PhysMemName = RTL_CONSTANT_STRING(L"\\Device\\PhysicalMemory");
- NTSTATUS Status;
- HANDLE PhysMemHandle;
- PVOID BaseAddress;
- LARGE_INTEGER Offset;
- SIZE_T ViewSize;
- CHAR IVTAndBda[1024+256];
-
- /* Free the 1MB pre-reserved region. In reality, ReactOS should simply support us mapping the view into the reserved area, but it doesn't. */
- BaseAddress = 0;
- ViewSize = 1024 * 1024;
- Status = ZwFreeVirtualMemory(NtCurrentProcess(),
- &BaseAddress,
- &ViewSize,
- MEM_RELEASE);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("Couldn't unmap reserved memory (%x)\n", Status);
- return 0;
- }
-
- /* Open the physical memory section */
- InitializeObjectAttributes(&ObjectAttributes,
- &PhysMemName,
- 0,
- NULL,
- NULL);
- Status = ZwOpenSection(&PhysMemHandle,
- SECTION_ALL_ACCESS,
- &ObjectAttributes);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("Couldn't open \\Device\\PhysicalMemory\n");
- return 0;
- }
-
- /* Map the BIOS and device registers into the address space */
- Offset.QuadPart = 0xa0000;
- ViewSize = 0x100000 - 0xa0000;
- BaseAddress = (PVOID)0xa0000;
- Status = ZwMapViewOfSection(PhysMemHandle,
- NtCurrentProcess(),
- &BaseAddress,
- 0,
- ViewSize,
- &Offset,
- &ViewSize,
- ViewUnmap,
- 0,
- PAGE_EXECUTE_READWRITE);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("Couldn't map physical memory (%x)\n", Status);
- ZwClose(PhysMemHandle);
- return 0;
- }
-
- /* Close physical memory section handle */
- ZwClose(PhysMemHandle);
-
- if (BaseAddress != (PVOID)0xa0000)
- {
- DPRINT1("Couldn't map physical memory at the right address (was %x)\n",
- BaseAddress);
- return 0;
- }
-
- /* Allocate some low memory to use for the non-BIOS
- * parts of the v86 mode address space
- */
- BaseAddress = (PVOID)0x1;
- ViewSize = 0xa0000 - 0x1000;
- Status = ZwAllocateVirtualMemory(NtCurrentProcess(),
- &BaseAddress,
- 0,
- &ViewSize,
- MEM_RESERVE | MEM_COMMIT,
- PAGE_EXECUTE_READWRITE);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("Failed to allocate virtual memory (Status %x)\n", Status);
- return 0;
- }
- if (BaseAddress != (PVOID)0x0)
- {
- DPRINT1("Failed to allocate virtual memory at right address (was %x)\n",
- BaseAddress);
- return 0;
- }
-
- /* Get the real mode IVT and BDA from the kernel */
- Status = NtVdmControl(VdmInitialize, IVTAndBda);
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("NtVdmControl failed (status %x)\n", Status);
- return 0;
- }
-
- /* Return success */
- return 1;
-}
-
-/**********************************************************************
- * UserpInitVideo
- *
- * TODO: we need a virtual device for sessions other than
- * TODO: the console one
- */
-NTSTATUS
-UserpInitVideo(VOID)
-{
- OBJECT_ATTRIBUTES ObjectAttributes;
- UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\??\\DISPLAY1");
- IO_STATUS_BLOCK Iosb;
- HANDLE VideoHandle = (HANDLE) 0;
- NTSTATUS Status = STATUS_SUCCESS;
-
- DPRINT("CSR: %s called\n", __FUNCTION__);
-
- InitializeVideoAddressSpace();
-
- InitializeObjectAttributes(&ObjectAttributes,
- &DeviceName,
- 0,
- NULL,
- NULL);
- Status = NtOpenFile(&VideoHandle,
- FILE_ALL_ACCESS,
- &ObjectAttributes,
- &Iosb,
- 0,
- 0);
- if (NT_SUCCESS(Status))
- {
- NtClose(VideoHandle);
- }
-
- return Status;
-}
-
-VOID
-WINAPI
-PrivateCsrssManualGuiCheck(LONG Check)
-{
- NtUserCallOneParam(Check, ONEPARAM_ROUTINE_CSRSS_GUICHECK);
-}
+/* ENTRY-POINT ****************************************************************/
/*** HACK from win32csr... ***/
static HHOOK hhk = NULL;
}
/*** END - HACK from win32csr... ***/
-DWORD
-WINAPI
-CreateSystemThreads(PVOID pParam)
-{
- NtUserCallOneParam((DWORD)pParam, ONEPARAM_ROUTINE_CREATESYSTEMTHREADS);
- DPRINT1("This thread should not terminate!\n");
- return 0;
-}
-
-CSR_SERVER_DLL_INIT(UserServerDllInitialization)
-{
-/*** From win32csr... ***/
- HANDLE ServerThread;
- CLIENT_ID ClientId;
- NTSTATUS Status;
- UINT i;
-/*** END - From win32csr... ***/
-
- /* Initialize the memory */
- UserServerHeap = RtlGetProcessHeap();
-
- /* Initialize the video */
- UserpInitVideo();
- NtUserInitialize(0, NULL, NULL);
- PrivateCsrssManualGuiCheck(0);
-
- /* Setup the DLL Object */
- LoadedServerDll->ApiBase = USERSRV_FIRST_API_NUMBER;
- LoadedServerDll->HighestApiSupported = UserpMaxApiNumber;
- LoadedServerDll->DispatchTable = UserServerApiDispatchTable;
- LoadedServerDll->ValidTable = UserServerApiServerValidTable;
- LoadedServerDll->NameTable = UserServerApiNameTable;
- LoadedServerDll->SizeOfProcessData = 0;
- LoadedServerDll->ConnectCallback = NULL;
- LoadedServerDll->DisconnectCallback = NULL;
- LoadedServerDll->HardErrorCallback = UserServerHardError;
- LoadedServerDll->ShutdownProcessCallback = NULL;
-
- UserServerDllInstance = LoadedServerDll->ServerHandle;
-
-/*** From win32csr... See r54125 ***/
- /* Start the Raw Input Thread and the Desktop Thread */
- for (i = 0; i < 2; ++i)
- {
- Status = RtlCreateUserThread(NtCurrentProcess(), NULL, TRUE, 0, 0, 0, (PTHREAD_START_ROUTINE)CreateSystemThreads, (PVOID)i, &ServerThread, &ClientId);
- if (NT_SUCCESS(Status))
- {
- NtResumeThread(ServerThread, NULL);
- NtClose(ServerThread);
- }
- else
- DPRINT1("Cannot start Raw Input Thread!\n");
- }
-/*** END - From win32csr... ***/
-
- /* All done */
- return STATUS_SUCCESS;
-}
-
BOOL
WINAPI
DllMain(IN HINSTANCE hInstanceDll,
--- /dev/null
+
+include_directories(usersrv)
+
+list(APPEND USERSRV_SOURCE
+ usersrv/harderror.c
+ usersrv/init.c
+ usersrv/register.c
+ usersrv/shutdown.c
+ # usersrv/usersrv.rc
+ )
+
+add_library(usersrv ${USERSRV_SOURCE})
+#add_object_library(usersrv ${USERSRV_SOURCE})
+
+set_module_type(usersrv module UNICODE)
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/api.h
+ * FILE: win32ss/user/winsrv/usersrv/api.h
* PURPOSE: Public server APIs definitions
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/harderror.c
+ * FILE: win32ss/user/winsrv/usersrv/harderror.c
* PURPOSE: Hard errors
* PROGRAMMERS: Dmitry Philippov (shedon@mail.ru)
* Timo Kreuzer (timo.kreuzer@reactos.org)
/* INCLUDES *******************************************************************/
-#include "winsrv.h"
+#include "usersrv.h"
#define NDEBUG
#include <debug.h>
--- /dev/null
+/*
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS User API Server DLL
+ * FILE: win32ss/user/winsrv/usersrv/init.c
+ * PURPOSE: Initialization
+ * PROGRAMMERS: Dmitry Philippov (shedon@mail.ru)
+ * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
+ */
+
+/* INCLUDES *******************************************************************/
+
+#include "usersrv.h"
+#include "api.h"
+
+#define NDEBUG
+#include <debug.h>
+
+/* GLOBALS ********************************************************************/
+
+HINSTANCE UserServerDllInstance = NULL;
+
+/* Memory */
+HANDLE UserServerHeap = NULL; // Our own heap.
+
+// Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
+PCSR_API_ROUTINE UserServerApiDispatchTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
+{
+ SrvExitWindowsEx,
+ // SrvEndTask,
+ // SrvLogon,
+ SrvRegisterServicesProcess, // Not present in Win7
+ // SrvActivateDebugger,
+ // SrvGetThreadConsoleDesktop, // Not present in Win7
+ // SrvDeviceEvent,
+ SrvRegisterLogonProcess, // Not present in Win7
+ // SrvCreateSystemThreads,
+ // SrvRecordShutdownReason,
+ // SrvCancelShutdown, // Added in Vista
+ // SrvConsoleHandleOperation, // Added in Win7
+ // SrvGetSetShutdownBlockReason, // Added in Vista
+};
+
+BOOLEAN UserServerApiServerValidTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
+{
+ FALSE, // SrvExitWindowsEx
+ // FALSE, // SrvEndTask
+ // FALSE, // SrvLogon
+ FALSE, // SrvRegisterServicesProcess
+ // FALSE, // SrvActivateDebugger
+ // TRUE, // SrvGetThreadConsoleDesktop
+ // FALSE, // SrvDeviceEvent
+ FALSE, // SrvRegisterLogonProcess
+ // FALSE, // SrvCreateSystemThreads
+ // FALSE, // SrvRecordShutdownReason
+ // FALSE, // SrvCancelShutdown
+ // FALSE, // SrvConsoleHandleOperation
+ // FALSE, // SrvGetSetShutdownBlockReason
+};
+
+PCHAR UserServerApiNameTable[UserpMaxApiNumber - USERSRV_FIRST_API_NUMBER] =
+{
+ "SrvExitWindowsEx",
+ // "SrvEndTask",
+ // "SrvLogon",
+ "SrvRegisterServicesProcess",
+ // "SrvActivateDebugger",
+ // "SrvGetThreadConsoleDesktop",
+ // "SrvDeviceEvent",
+ "SrvRegisterLogonProcess",
+ // "SrvCreateSystemThreads",
+ // "SrvRecordShutdownReason",
+ // "SrvCancelShutdown",
+ // "SrvConsoleHandleOperation",
+ // "SrvGetSetShutdownBlockReason",
+};
+
+
+/* FUNCTIONS ******************************************************************/
+
+// PUSER_SOUND_SENTRY. Used in basesrv.dll
+BOOL WINAPI _UserSoundSentry(VOID)
+{
+ // TODO: Do something.
+ return TRUE;
+}
+
+ULONG
+InitializeVideoAddressSpace(VOID)
+{
+ OBJECT_ATTRIBUTES ObjectAttributes;
+ UNICODE_STRING PhysMemName = RTL_CONSTANT_STRING(L"\\Device\\PhysicalMemory");
+ NTSTATUS Status;
+ HANDLE PhysMemHandle;
+ PVOID BaseAddress;
+ LARGE_INTEGER Offset;
+ SIZE_T ViewSize;
+ CHAR IVTAndBda[1024+256];
+
+ /* Free the 1MB pre-reserved region. In reality, ReactOS should simply support us mapping the view into the reserved area, but it doesn't. */
+ BaseAddress = 0;
+ ViewSize = 1024 * 1024;
+ Status = ZwFreeVirtualMemory(NtCurrentProcess(),
+ &BaseAddress,
+ &ViewSize,
+ MEM_RELEASE);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Couldn't unmap reserved memory (%x)\n", Status);
+ return 0;
+ }
+
+ /* Open the physical memory section */
+ InitializeObjectAttributes(&ObjectAttributes,
+ &PhysMemName,
+ 0,
+ NULL,
+ NULL);
+ Status = ZwOpenSection(&PhysMemHandle,
+ SECTION_ALL_ACCESS,
+ &ObjectAttributes);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Couldn't open \\Device\\PhysicalMemory\n");
+ return 0;
+ }
+
+ /* Map the BIOS and device registers into the address space */
+ Offset.QuadPart = 0xa0000;
+ ViewSize = 0x100000 - 0xa0000;
+ BaseAddress = (PVOID)0xa0000;
+ Status = ZwMapViewOfSection(PhysMemHandle,
+ NtCurrentProcess(),
+ &BaseAddress,
+ 0,
+ ViewSize,
+ &Offset,
+ &ViewSize,
+ ViewUnmap,
+ 0,
+ PAGE_EXECUTE_READWRITE);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Couldn't map physical memory (%x)\n", Status);
+ ZwClose(PhysMemHandle);
+ return 0;
+ }
+
+ /* Close physical memory section handle */
+ ZwClose(PhysMemHandle);
+
+ if (BaseAddress != (PVOID)0xa0000)
+ {
+ DPRINT1("Couldn't map physical memory at the right address (was %x)\n",
+ BaseAddress);
+ return 0;
+ }
+
+ /* Allocate some low memory to use for the non-BIOS
+ * parts of the v86 mode address space
+ */
+ BaseAddress = (PVOID)0x1;
+ ViewSize = 0xa0000 - 0x1000;
+ Status = ZwAllocateVirtualMemory(NtCurrentProcess(),
+ &BaseAddress,
+ 0,
+ &ViewSize,
+ MEM_RESERVE | MEM_COMMIT,
+ PAGE_EXECUTE_READWRITE);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("Failed to allocate virtual memory (Status %x)\n", Status);
+ return 0;
+ }
+ if (BaseAddress != (PVOID)0x0)
+ {
+ DPRINT1("Failed to allocate virtual memory at right address (was %x)\n",
+ BaseAddress);
+ return 0;
+ }
+
+ /* Get the real mode IVT and BDA from the kernel */
+ Status = NtVdmControl(VdmInitialize, IVTAndBda);
+ if (!NT_SUCCESS(Status))
+ {
+ DPRINT1("NtVdmControl failed (status %x)\n", Status);
+ return 0;
+ }
+
+ /* Return success */
+ return 1;
+}
+
+/**********************************************************************
+ * UserpInitVideo
+ *
+ * TODO: we need a virtual device for sessions other than
+ * TODO: the console one
+ */
+NTSTATUS
+UserpInitVideo(VOID)
+{
+ OBJECT_ATTRIBUTES ObjectAttributes;
+ UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\??\\DISPLAY1");
+ IO_STATUS_BLOCK Iosb;
+ HANDLE VideoHandle = (HANDLE) 0;
+ NTSTATUS Status = STATUS_SUCCESS;
+
+ DPRINT("CSR: %s called\n", __FUNCTION__);
+
+ InitializeVideoAddressSpace();
+
+ InitializeObjectAttributes(&ObjectAttributes,
+ &DeviceName,
+ 0,
+ NULL,
+ NULL);
+ Status = NtOpenFile(&VideoHandle,
+ FILE_ALL_ACCESS,
+ &ObjectAttributes,
+ &Iosb,
+ 0,
+ 0);
+ if (NT_SUCCESS(Status))
+ {
+ NtClose(VideoHandle);
+ }
+
+ return Status;
+}
+
+// From win32ss/user/win32csr/dllmain.c
+VOID
+WINAPI
+PrivateCsrssManualGuiCheck(LONG Check)
+{
+ NtUserCallOneParam(Check, ONEPARAM_ROUTINE_CSRSS_GUICHECK);
+}
+
+DWORD
+WINAPI
+CreateSystemThreads(PVOID pParam)
+{
+ NtUserCallOneParam((DWORD)pParam, ONEPARAM_ROUTINE_CREATESYSTEMTHREADS);
+ DPRINT1("This thread should not terminate!\n");
+ return 0;
+}
+
+CSR_SERVER_DLL_INIT(UserServerDllInitialization)
+{
+/*** From win32csr... ***/
+ HANDLE ServerThread;
+ CLIENT_ID ClientId;
+ NTSTATUS Status;
+ UINT i;
+/*** END - From win32csr... ***/
+
+ /* Initialize the memory */
+ UserServerHeap = RtlGetProcessHeap();
+
+ /* Initialize the video */
+ UserpInitVideo();
+ NtUserInitialize(0, NULL, NULL);
+ PrivateCsrssManualGuiCheck(0);
+
+ /* Setup the DLL Object */
+ LoadedServerDll->ApiBase = USERSRV_FIRST_API_NUMBER;
+ LoadedServerDll->HighestApiSupported = UserpMaxApiNumber;
+ LoadedServerDll->DispatchTable = UserServerApiDispatchTable;
+ LoadedServerDll->ValidTable = UserServerApiServerValidTable;
+ LoadedServerDll->NameTable = UserServerApiNameTable;
+ LoadedServerDll->SizeOfProcessData = 0;
+ LoadedServerDll->ConnectCallback = NULL;
+ LoadedServerDll->DisconnectCallback = NULL;
+ LoadedServerDll->HardErrorCallback = UserServerHardError;
+ LoadedServerDll->ShutdownProcessCallback = NULL;
+
+ UserServerDllInstance = LoadedServerDll->ServerHandle;
+
+/*** From win32csr... See r54125 ***/
+ /* Start the Raw Input Thread and the Desktop Thread */
+ for (i = 0; i < 2; ++i)
+ {
+ Status = RtlCreateUserThread(NtCurrentProcess(), NULL, TRUE, 0, 0, 0, (PTHREAD_START_ROUTINE)CreateSystemThreads, (PVOID)i, &ServerThread, &ClientId);
+ if (NT_SUCCESS(Status))
+ {
+ NtResumeThread(ServerThread, NULL);
+ NtClose(ServerThread);
+ }
+ else
+ DPRINT1("Cannot start Raw Input Thread!\n");
+ }
+/*** END - From win32csr... ***/
+
+ /* All done */
+ return STATUS_SUCCESS;
+}
+
+/* EOF */
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/register.c
+ * FILE: win32ss/user/winsrv/usersrv/register.c
* PURPOSE: Register logon window and services process
* PROGRAMMERS: Eric Kohl
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
/* INCLUDES *******************************************************************/
-#include "winsrv.h"
+#include "usersrv.h"
#define NDEBUG
#include <debug.h>
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/resource.h
+ * FILE: win32ss/user/winsrv/usersrv/resource.h
* PURPOSE: Resource #defines
*/
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/shutdown.c
+ * FILE: win32ss/user/winsrv/usersrv/shutdown.c
* PURPOSE: Logout/shutdown
* PROGRAMMERS:
*
/* INCLUDES *******************************************************************/
-#include "winsrv.h"
+#include "usersrv.h"
#include <sddl.h>
#define NDEBUG
return TRUE;
}
-/*** Taken from win32ss/user/consrv/console.c ***/
static BOOL
DtbgIsDesktopVisible(VOID)
{
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS User API Server DLL
- * FILE: win32ss/user/winsrv/winsrv.h
+ * FILE: win32ss/user/winsrv/usersrv/usersrv.h
* PURPOSE: Main header - Definitions
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
*/
-#ifndef __WINSRV_H__
-#define __WINSRV_H__
+#ifndef __USERSRV_H__
+#define __USERSRV_H__
#pragma once
extern HANDLE UserServerHeap;
extern ULONG_PTR LogonProcessId;
-#endif // __WINSRV_H__
+#endif // __USERSRV_H__
/* EOF */
--- /dev/null
+#include <windef.h>
+#include <winuser.h>
+#include "resource.h"
+
+#include "rsrc.rc"
#include <windef.h>
#include <winuser.h>
-#include "resource.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#define REACTOS_VERSION_DLL
-#define REACTOS_STR_FILE_DESCRIPTION "ReactOS User API Server DLL"
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS User API & Console Server & Terminal Emulator DLL"
#define REACTOS_STR_INTERNAL_NAME "winsrv"
#define REACTOS_STR_ORIGINAL_FILENAME "winsrv.dll"
#include <reactos/version.rc>
-#include "rsrc.rc"
+#include "consrv/consrv.rc"
+#include "usersrv/usersrv.rc"
+@ stdcall ConServerDllInitialization(ptr)
@ stdcall UserServerDllInitialization(ptr)
@ stdcall _UserSoundSentry()