[CONSRV/WIN32CSR]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Mon, 22 Oct 2012 23:55:51 +0000 (23:55 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Mon, 22 Oct 2012 23:55:51 +0000 (23:55 +0000)
- Move all the console subsystem from win32csr to a new server dll called consrv.dll (instead of putting it directly to winsrv.dll). It's because I want to rework on this later on.
Many things must be done in order to achieve the moving (renaming functions, etc...). Tables & symbol names come from http://j00ru.vexillium.org/csrss_list/api_list.html as usual,
but here I took the Win 2k3 ones and I added few Win 7 functions which already existed in our codebase. The other table names are guessed based on what originally existed in csrsrv
and so on. Many stubs are also missing.
Cultural remark: consrv.dll originally existed in Beta releases of Windows NT 3.1 (e.g. the October 1991 one), but was soon merged with winsrv.dll and thus, in subsequent versions of
Windows, the console subsystem is also found in winsrv.dll. See http://www.logotypes.se/NT310CSRSS.txt and http://j00ru.vexillium.org/?p=349#comment-1883. One has to wait until
Windows 7 to see it moving again to conhost.exe.

[CSRSRV]
- Add an explanation comment on what the ValidTable member in the CSR_SERVER_DLL structure is for.

svn path=/branches/ros-csrss/; revision=57597

51 files changed:
include/reactos/subsys/csr/csrmsg.h
include/reactos/subsys/csr/csrsrv.h
include/reactos/subsys/win/conmsg.h
win32ss/user/consrv/CMakeLists.txt [new file with mode: 0644]
win32ss/user/consrv/alias.c [moved from win32ss/user/win32csr/alias.c with 94% similarity]
win32ss/user/consrv/coninput.c [moved from win32ss/user/win32csr/coninput.c with 96% similarity]
win32ss/user/consrv/conio.h [moved from win32ss/user/win32csr/conio.h with 84% similarity]
win32ss/user/consrv/conoutput.c [moved from win32ss/user/win32csr/conoutput.c with 97% similarity]
win32ss/user/consrv/console.c [moved from win32ss/user/win32csr/console.c with 89% similarity]
win32ss/user/consrv/consrv.h [new file with mode: 0644]
win32ss/user/consrv/consrv.rc [new file with mode: 0644]
win32ss/user/consrv/consrv.spec [new file with mode: 0644]
win32ss/user/consrv/guiconsole.c [moved from win32ss/user/win32csr/guiconsole.c with 98% similarity]
win32ss/user/consrv/guiconsole.h [moved from win32ss/user/win32csr/guiconsole.h with 79% similarity]
win32ss/user/consrv/handle.c [moved from win32ss/user/win32csr/handle.c with 92% similarity]
win32ss/user/consrv/init.c [new file with mode: 0644]
win32ss/user/consrv/lang/bg-BG.rc [new file with mode: 0644]
win32ss/user/consrv/lang/cs-CZ.rc [new file with mode: 0644]
win32ss/user/consrv/lang/de-DE.rc [new file with mode: 0644]
win32ss/user/consrv/lang/el-GR.rc [new file with mode: 0644]
win32ss/user/consrv/lang/en-US.rc [new file with mode: 0644]
win32ss/user/consrv/lang/es-ES.rc [new file with mode: 0644]
win32ss/user/consrv/lang/fr-FR.rc [new file with mode: 0644]
win32ss/user/consrv/lang/id-ID.rc [new file with mode: 0644]
win32ss/user/consrv/lang/it-IT.rc [new file with mode: 0644]
win32ss/user/consrv/lang/ja-JP.rc [new file with mode: 0644]
win32ss/user/consrv/lang/no-NO.rc [new file with mode: 0644]
win32ss/user/consrv/lang/pl-PL.rc [new file with mode: 0644]
win32ss/user/consrv/lang/pt-BR.rc [new file with mode: 0644]
win32ss/user/consrv/lang/ro-RO.rc [new file with mode: 0644]
win32ss/user/consrv/lang/ru-RU.rc [new file with mode: 0644]
win32ss/user/consrv/lang/sk-SK.rc [new file with mode: 0644]
win32ss/user/consrv/lang/sv-SE.rc [new file with mode: 0644]
win32ss/user/consrv/lang/tr-TR.rc [new file with mode: 0644]
win32ss/user/consrv/lang/uk-UA.rc [new file with mode: 0644]
win32ss/user/consrv/lang/zh-CN.rc [new file with mode: 0644]
win32ss/user/consrv/lang/zh-TW.rc [new file with mode: 0644]
win32ss/user/consrv/lineinput.c [moved from win32ss/user/win32csr/lineinput.c with 96% similarity]
win32ss/user/consrv/res/terminal.ico [moved from win32ss/user/win32csr/res/terminal.ico with 100% similarity]
win32ss/user/consrv/rsrc.rc [new file with mode: 0644]
win32ss/user/consrv/server.c [new file with mode: 0644]
win32ss/user/consrv/tuiconsole.c [moved from win32ss/user/win32csr/tuiconsole.c with 97% similarity]
win32ss/user/consrv/tuiconsole.h [moved from win32ss/user/win32csr/tuiconsole.h with 76% similarity]
win32ss/user/win32csr/CMakeLists.txt
win32ss/user/win32csr/desktopbg.c
win32ss/user/win32csr/desktopbg.h
win32ss/user/win32csr/dllmain.c
win32ss/user/win32csr/exitros.c
win32ss/user/win32csr/resource.h
win32ss/user/win32csr/w32csr.h
win32ss/user/win32csr/win32csr.h

index 8598db3..8fd5748 100644 (file)
@@ -121,16 +121,17 @@ typedef struct _CSR_API_MESSAGE
 #if 1
                 CSRSS_REGISTER_SERVICES_PROCESS RegisterServicesProcessRequest;
                 CSRSS_EXIT_REACTOS ExitReactosRequest;
+
                 CSRSS_CLOSE_HANDLE CloseHandleRequest;
                 CSRSS_VERIFY_HANDLE VerifyHandleRequest;
                 CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
+                CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
 
                 CSRSS_CREATE_DESKTOP CreateDesktopRequest;
                 CSRSS_SHOW_DESKTOP ShowDesktopRequest;
                 CSRSS_HIDE_DESKTOP HideDesktopRequest;
                 CSRSS_SET_LOGON_NOTIFY_WINDOW SetLogonNotifyWindowRequest;
                 CSRSS_REGISTER_LOGON_PROCESS RegisterLogonProcessRequest;
-                CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
                 CSRSS_GET_PROCESS_LIST GetProcessListRequest;
 #endif
             /*****************/
index 07080e5..55d4e68 100644 (file)
@@ -226,7 +226,7 @@ typedef struct _CSR_SERVER_DLL
     ULONG ApiBase; // ApiNumberBase
     ULONG HighestApiSupported; // MaxApiNumber
     PCSR_API_ROUTINE *DispatchTable;
-    PBOOLEAN ValidTable;
+    PBOOLEAN ValidTable; // Table of booleans which describe whether or not a server function call is valid when it is called via CsrCallServerFromServer.
     PCHAR *NameTable;
     ULONG SizeOfProcessData;
     PCSR_CONNECT_CALLBACK ConnectCallback;
index c99946f..0eaded5 100644 (file)
@@ -1,6 +1,3 @@
-/*
- * CSRSS Console management structures.
- */
 
 #ifndef __CONMSG_H__
 #define __CONMSG_H__
 #define CONSRV_SERVERDLL_INDEX      2
 #define CONSRV_FIRST_API_NUMBER     512
 
-/* w32 console server - move to con.h */
-CSR_SERVER_DLL_INIT(ConServerDllInitialization);
-
-// Windows NT 4 table, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_NT
-// It is for testing purposes. After that I will update it to 2k3 version and add stubs.
+// Windows 2k3 tables, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
+// plus a little bit of Windows 7. It is for testing purposes. After that I will add stubs.
+// Some names are also deduced from the subsystems/win32/csrss/csrsrv/server.c ones.
 typedef enum _CONSRV_API_NUMBER
 {
-    BasepCreateProcess = CONSRV_FIRST_API_NUMBER,
-
-
-#define WRITE_CONSOLE                   (0x2)
-#define READ_CONSOLE                    (0x3)
-#define ALLOC_CONSOLE                   (0x4)
-#define FREE_CONSOLE                    (0x5)
-#define SCREEN_BUFFER_INFO              (0x7)
-#define SET_CURSOR                      (0x8)
-#define FILL_OUTPUT                     (0x9)
-#define READ_INPUT                      (0xA)
-#define WRITE_CONSOLE_OUTPUT_CHAR       (0xB)
-#define WRITE_CONSOLE_OUTPUT_ATTRIB     (0xC)
-#define FILL_OUTPUT_ATTRIB              (0xD)
-#define GET_CURSOR_INFO                 (0xE)
-#define SET_CURSOR_INFO                 (0xF)
-#define SET_ATTRIB                      (0x10)
-#define GET_CONSOLE_MODE                (0x11)
-#define SET_CONSOLE_MODE                (0x12)
-#define CREATE_SCREEN_BUFFER            (0x13)
-#define SET_SCREEN_BUFFER               (0x14)
-#define SET_TITLE                       (0x15)
-#define GET_TITLE                       (0x16)
-#define WRITE_CONSOLE_OUTPUT            (0x17)
-#define FLUSH_INPUT_BUFFER              (0x18)
-#define SCROLL_CONSOLE_SCREEN_BUFFER    (0x19)
-#define READ_CONSOLE_OUTPUT_CHAR        (0x1A)
-#define READ_CONSOLE_OUTPUT_ATTRIB      (0x1B)
-#define GET_NUM_INPUT_EVENTS            (0x1C)
-#define PEEK_CONSOLE_INPUT              (0x21)
-#define READ_CONSOLE_OUTPUT             (0x22)
-#define WRITE_CONSOLE_INPUT             (0x23)
-#define GET_INPUT_HANDLE                (0x24)
-#define GET_OUTPUT_HANDLE               (0x25)
-#define SETGET_CONSOLE_HW_STATE         (0x29)
-#define GET_CONSOLE_WINDOW              (0x2A)
-#define SET_CONSOLE_ICON                (0x2E)
-#define GET_CONSOLE_CP                  (0x31)
-#define SET_CONSOLE_CP                  (0x32)
-#define GET_CONSOLE_OUTPUT_CP           (0x33)
-#define SET_CONSOLE_OUTPUT_CP           (0x34)
-#define ADD_CONSOLE_ALIAS               (0x38)
-#define GET_CONSOLE_ALIAS               (0x39)
-#define GET_ALL_CONSOLE_ALIASES         (0x3A)
-#define GET_ALL_CONSOLE_ALIASES_LENGTH  (0x3B)
-#define GET_CONSOLE_ALIASES_EXES        (0x3C)
-#define GET_CONSOLE_ALIASES_EXES_LENGTH (0x3D)
-#define GENERATE_CTRL_EVENT             (0x3E)
-#define SET_SCREEN_BUFFER_SIZE          (0x40)
-#define GET_CONSOLE_SELECTION_INFO      (0x41)
-#define GET_COMMAND_HISTORY_LENGTH      (0x42)
-#define GET_COMMAND_HISTORY             (0x43)
-#define EXPUNGE_COMMAND_HISTORY         (0x44)
-#define SET_HISTORY_NUMBER_COMMANDS     (0x45)
-#define GET_HISTORY_INFO                (0x46)
-#define SET_HISTORY_INFO                (0x47)
-
-
-    BasepMaxApiNumber
+    // ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
+    ConsolepGetConsoleInput = CONSRV_FIRST_API_NUMBER,
+    ConsolepWriteConsoleInput,
+    ConsolepReadConsoleOutput,
+    ConsolepWriteConsoleOutput,
+    // ConsolepReadConsoleOutputString,
+    // ConsolepWriteConsoleOutputString,
+    // ConsolepFillConsoleOutput,
+    ConsolepGetMode,
+    // ConsolepGetNumberOfFonts,
+    ConsolepGetNumberOfInputEvents,
+    ConsolepGetScreenBufferInfo,
+    ConsolepGetCursorInfo,
+    // ConsolepGetMouseInfo,
+    // ConsolepGetFontInfo,
+    // ConsolepGetFontSize,
+    // ConsolepGetCurrentFont,
+    ConsolepSetMode,
+    ConsolepSetActiveScreenBuffer,
+    ConsolepFlushInputBuffer,
+    // ConsolepGetLargestWindowSize,
+    ConsolepSetScreenBufferSize,
+    // ConsolepSetCursorPosition,
+    ConsolepSetCursorInfo,
+    // ConsolepSetWindowInfo,
+    ConsolepScrollScreenBuffer,
+    // ConsolepSetTextAttribute,
+    // ConsolepSetFont,
+    ConsolepSetIcon,
+    ConsolepReadConsole,
+    ConsolepWriteConsole,
+    ConsolepDuplicateHandle,
+    // ConsolepGetHandleInformation,
+    // ConsolepSetHandleInformation,
+    ConsolepCloseHandle,
+    ConsolepVerifyIoHandle,
+    ConsolepAlloc,
+    ConsolepFree,
+    ConsolepGetTitle,
+    ConsolepSetTitle,
+    ConsolepCreateScreenBuffer,
+    // ConsolepInvalidateBitMapRect,
+    // ConsolepVDMOperation,
+    ConsolepSetCursor,
+    // ConsolepShowCursor,
+    // ConsolepMenuControl,
+    // ConsolepSetPalette,
+    // ConsolepSetDisplayMode,
+    // ConsolepRegisterVDM,
+    ConsolepGetHardwareState,
+    ConsolepSetHardwareState,
+    // ConsolepGetDisplayMode,
+    ConsolepAddAlias,
+    ConsolepGetAlias,
+    ConsolepGetAliasesLength,
+    ConsolepGetAliasExesLength,
+    ConsolepGetAliases,
+    ConsolepGetAliasExes,
+    ConsolepExpungeCommandHistory,
+    ConsolepSetNumberOfCommands,
+    ConsolepGetCommandHistoryLength,
+    ConsolepGetCommandHistory,
+    // ConsolepSetCommandHistoryMode,
+    ConsolepGetCP,
+    ConsolepSetCP,
+    // ConsolepSetKeyShortcuts,
+    // ConsolepSetMenuClose,
+    // ConsolepNotifyLastClose,
+    ConsolepGenerateCtrlEvent,
+    // ConsolepGetKeyboardLayoutName,
+    ConsolepGetConsoleWindow,
+    // ConsolepCharType,
+    // ConsolepSetLocalEUDC,
+    // ConsolepSetCursorMode,
+    // ConsolepGetCursorMode,
+    // ConsolepRegisterOS2,
+    // ConsolepSetOS2OemFormat,
+    // ConsolepGetNlsMode,
+    // ConsolepSetNlsMode,
+    // ConsolepRegisterConsoleIME,
+    // ConsolepUnregisterConsoleIME,
+    // ConsolepGetLangId,
+    // ConsolepAttach,
+    ConsolepGetSelectionInfo,
+    ConsolepGetProcessList,
+    ConsolepGetHistory,
+    ConsolepSetHistory,
+
+    ConsolepMaxApiNumber
 } CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;
 
 
-
 #define CSRSS_MAX_WRITE_CONSOLE                 (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE))
 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR     (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_CHAR))
 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB   (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB))
diff --git a/win32ss/user/consrv/CMakeLists.txt b/win32ss/user/consrv/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6443b94
--- /dev/null
@@ -0,0 +1,31 @@
+
+include_directories(
+    ${REACTOS_SOURCE_DIR}/include/reactos/subsys
+    ${REACTOS_SOURCE_DIR}/dll/cpl/console)
+
+spec2def(consrv.dll consrv.spec)
+
+list(APPEND SOURCE
+    alias.c
+    coninput.c
+    conoutput.c
+    console.c
+    guiconsole.c
+    handle.c
+    init.c
+    lineinput.c
+    server.c
+    tuiconsole.c
+    consrv.rc
+    ${CMAKE_CURRENT_BINARY_DIR}/consrv.def)
+
+add_library(consrv SHARED ${SOURCE})
+
+target_link_libraries(consrv ${PSEH_LIB})
+
+set_module_type(consrv nativedll) # win32dll
+
+add_importlibs(consrv ntdll csrsrv)
+
+add_dependencies(consrv bugcodes)
+add_cd_file(TARGET consrv DESTINATION reactos/system32 FOR all)
similarity index 94%
rename from win32ss/user/win32csr/alias.c
rename to win32ss/user/consrv/alias.c
index a12eb03..e00439b 100644 (file)
@@ -55,7 +55,7 @@ IntCreateAliasHeader(LPCWSTR lpExeName)
     PALIAS_HEADER Entry;
     UINT dwLength = wcslen(lpExeName) + 1;
 
-    Entry = RtlAllocateHeap(Win32CsrApiHeap, 0, sizeof(ALIAS_HEADER) + sizeof(WCHAR) * dwLength);
+    Entry = RtlAllocateHeap(ConSrvHeap, 0, sizeof(ALIAS_HEADER) + sizeof(WCHAR) * dwLength);
     if (!Entry)
         return Entry;
 
@@ -142,7 +142,7 @@ IntCreateAliasEntry(LPCWSTR lpSource, LPCWSTR lpTarget)
     dwSource = wcslen(lpSource) + 1;
     dwTarget = wcslen(lpTarget) + 1;
 
-    Entry = RtlAllocateHeap(Win32CsrApiHeap, 0, sizeof(ALIAS_ENTRY) + sizeof(WCHAR) * (dwSource + dwTarget));
+    Entry = RtlAllocateHeap(ConSrvHeap, 0, sizeof(ALIAS_ENTRY) + sizeof(WCHAR) * (dwSource + dwTarget));
     if (!Entry)
         return Entry;
 
@@ -254,7 +254,7 @@ IntDeleteAliasEntry(PALIAS_HEADER Header, PALIAS_ENTRY Entry)
         if (CurEntry == Entry)
         {
             *LastLink = Entry->Next;
-            RtlFreeHeap(Win32CsrApiHeap, 0, Entry);
+            RtlFreeHeap(ConSrvHeap, 0, Entry);
             return;
         }
         LastLink = &CurEntry->Next;
@@ -271,13 +271,13 @@ IntDeleteAllAliases(PALIAS_HEADER RootHeader)
         for (Entry = Header->Data; Entry; Entry = NextEntry)
         {
             NextEntry = Entry->Next;
-            RtlFreeHeap(Win32CsrApiHeap, 0, Entry);
+            RtlFreeHeap(ConSrvHeap, 0, Entry);
         }
-        RtlFreeHeap(Win32CsrApiHeap, 0, Header);
+        RtlFreeHeap(ConSrvHeap, 0, Header);
     }
 }
 
-CSR_API(CsrAddConsoleAlias)
+CSR_API(SrvAddConsoleAlias)
 {
     PCSRSS_CONSOLE Console;
     PALIAS_HEADER Header;
@@ -295,7 +295,7 @@ CSR_API(CsrAddConsoleAlias)
     lpExeName = (WCHAR*)((ULONG_PTR)ApiMessage + sizeof(CSR_API_MESSAGE) + ApiMessage->Data.AddConsoleAlias.SourceLength * sizeof(WCHAR));
     lpTarget = (ApiMessage->Data.AddConsoleAlias.TargetLength != 0 ? lpExeName + ApiMessage->Data.AddConsoleAlias.ExeLength : NULL);
 
-    DPRINT("CsrAddConsoleAlias entered ApiMessage %p lpSource %p lpExeName %p lpTarget %p\n", ApiMessage, lpSource, lpExeName, lpTarget);
+    DPRINT("SrvAddConsoleAlias entered ApiMessage %p lpSource %p lpExeName %p lpTarget %p\n", ApiMessage, lpSource, lpExeName, lpTarget);
 
     if (lpExeName == NULL || lpSource == NULL)
     {
@@ -349,7 +349,7 @@ CSR_API(CsrAddConsoleAlias)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetConsoleAlias)
+CSR_API(SrvGetConsoleAlias)
 {
     PCSRSS_CONSOLE Console;
     PALIAS_HEADER Header;
@@ -364,7 +364,7 @@ CSR_API(CsrGetConsoleAlias)
     lpTarget = ApiMessage->Data.GetConsoleAlias.TargetBuffer;
 
 
-    DPRINT("CsrGetConsoleAlias entered lpExeName %p lpSource %p TargetBuffer %p TargetBufferLength %u\n",
+    DPRINT("SrvGetConsoleAlias entered lpExeName %p lpSource %p TargetBuffer %p TargetBufferLength %u\n",
            lpExeName, lpSource, lpTarget, ApiMessage->Data.GetConsoleAlias.TargetBufferLength);
 
     if (ApiMessage->Data.GetConsoleAlias.ExeLength == 0 || lpTarget == NULL ||
@@ -413,7 +413,7 @@ CSR_API(CsrGetConsoleAlias)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetAllConsoleAliases)
+CSR_API(SrvGetConsoleAliases)
 {
     PCSRSS_CONSOLE Console;
     ULONG BytesWritten;
@@ -461,7 +461,7 @@ CSR_API(CsrGetAllConsoleAliases)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetAllConsoleAliasesLength)
+CSR_API(SrvGetConsoleAliasesLength)
 {
     PCSRSS_CONSOLE Console;
     PALIAS_HEADER Header;
@@ -491,13 +491,13 @@ CSR_API(CsrGetAllConsoleAliasesLength)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetConsoleAliasesExes)
+CSR_API(SrvGetConsoleAliasExes)
 {
     PCSRSS_CONSOLE Console;
     UINT BytesWritten;
     UINT ExesLength;
 
-    DPRINT("CsrGetConsoleAliasesExes entered\n");
+    DPRINT("SrvGetConsoleAliasExes entered\n");
 
     ApiMessage->Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (!NT_SUCCESS(ApiMessage->Status))
@@ -537,10 +537,10 @@ CSR_API(CsrGetConsoleAliasesExes)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetConsoleAliasesExesLength)
+CSR_API(SrvGetConsoleAliasExesLength)
 {
     PCSRSS_CONSOLE Console;
-    DPRINT("CsrGetConsoleAliasesExesLength entered\n");
+    DPRINT("SrvGetConsoleAliasExesLength entered\n");
 
     ApiMessage->Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (NT_SUCCESS(ApiMessage->Status))
similarity index 96%
rename from win32ss/user/win32csr/coninput.c
rename to win32ss/user/consrv/coninput.c
index a93b8a9..fa9e6e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * reactos/subsys/csrss/win32csr/conio.c
+ * reactos/win32ss/user/consrv/conio.c
  *
  * Console I/O functions
  *
@@ -22,7 +22,7 @@
 
 /* FUNCTIONS *****************************************************************/
 
-CSR_API(CsrReadConsole)
+CSR_API(SrvReadConsole)
 {
     PLIST_ENTRY CurrentEntry;
     ConsoleInput *Input;
@@ -34,7 +34,7 @@ CSR_API(CsrReadConsole)
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrReadConsole\n");
+    DPRINT("SrvReadConsole\n");
 
     CharSize = (ApiMessage->Data.ReadConsoleRequest.Unicode ? sizeof(WCHAR) : sizeof(CHAR));
 
@@ -63,7 +63,7 @@ CSR_API(CsrReadConsole)
         {
             /* Starting a new line */
             Console->LineMaxSize = max(256, nNumberOfCharsToRead);
-            Console->LineBuffer = HeapAlloc(Win32CsrApiHeap, 0, Console->LineMaxSize * sizeof(WCHAR));
+            Console->LineBuffer = HeapAlloc(ConSrvHeap, 0, Console->LineMaxSize * sizeof(WCHAR));
             if (Console->LineBuffer == NULL)
             {
                 Status = STATUS_NO_MEMORY;
@@ -103,7 +103,7 @@ CSR_API(CsrReadConsole)
                 LineInputKeyDown(Console, &Input->InputEvent.Event.KeyEvent);
                 ApiMessage->Data.ReadConsoleRequest.ControlKeyState = Input->InputEvent.Event.KeyEvent.dwControlKeyState;
             }
-            HeapFree(Win32CsrApiHeap, 0, Input);
+            HeapFree(ConSrvHeap, 0, Input);
         }
 
         /* Check if we have a complete line to read from */
@@ -120,7 +120,7 @@ CSR_API(CsrReadConsole)
             if (Console->LinePos == Console->LineSize)
             {
                 /* Entire line has been read */
-                HeapFree(Win32CsrApiHeap, 0, Console->LineBuffer);
+                HeapFree(ConSrvHeap, 0, Console->LineBuffer);
                 Console->LineBuffer = NULL;
             }
             Status = STATUS_SUCCESS;
@@ -151,7 +151,7 @@ CSR_API(CsrReadConsole)
                     ConsoleInputUnicodeCharToAnsiChar(Console, &Buffer[i++], &Char);
                 Status = STATUS_SUCCESS; /* did read something */
             }
-            HeapFree(Win32CsrApiHeap, 0, Input);
+            HeapFree(ConSrvHeap, 0, Input);
         }
     }
 done:
@@ -208,7 +208,7 @@ ConioProcessChar(PCSRSS_CONSOLE Console,
     }
 
     /* add event to the queue */
-    ConInRec = RtlAllocateHeap(Win32CsrApiHeap, 0, sizeof(ConsoleInput));
+    ConInRec = RtlAllocateHeap(ConSrvHeap, 0, sizeof(ConsoleInput));
     if (ConInRec == NULL)
         return STATUS_INSUFFICIENT_RESOURCES;
     ConInRec->InputEvent = *InputEvent;
@@ -465,7 +465,7 @@ CSR_API(CsrReadInputEvent)
             Done = TRUE;
         }
 
-        HeapFree(Win32CsrApiHeap, 0, Input);
+        HeapFree(ConSrvHeap, 0, Input);
     }
 
     if (Done)
@@ -483,14 +483,14 @@ CSR_API(CsrReadInputEvent)
     return Status;
 }
 
-CSR_API(CsrFlushInputBuffer)
+CSR_API(SrvFlushConsoleInputBuffer)
 {
     PLIST_ENTRY CurrentEntry;
     PCSRSS_CONSOLE Console;
     ConsoleInput* Input;
     NTSTATUS Status;
 
-    DPRINT("CsrFlushInputBuffer\n");
+    DPRINT("SrvFlushConsoleInputBuffer\n");
 
     Status = ConioLockConsole(CsrGetClientThread()->Process,
                               ApiMessage->Data.FlushInputBufferRequest.ConsoleInput,
@@ -507,7 +507,7 @@ CSR_API(CsrFlushInputBuffer)
         CurrentEntry = RemoveHeadList(&Console->InputEvents);
         Input = CONTAINING_RECORD(CurrentEntry, ConsoleInput, ListEntry);
         /* Destroy the event */
-        HeapFree(Win32CsrApiHeap, 0, Input);
+        HeapFree(ConSrvHeap, 0, Input);
     }
     ResetEvent(Console->ActiveEvent);
 
@@ -516,14 +516,14 @@ CSR_API(CsrFlushInputBuffer)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetNumberOfConsoleInputEvents)
+CSR_API(SrvGetConsoleNumberOfInputEvents)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
     PLIST_ENTRY CurrentItem;
     DWORD NumEvents;
 
-    DPRINT("CsrGetNumberOfConsoleInputEvents\n");
+    DPRINT("SrvGetConsoleNumberOfInputEvents\n");
 
     Status = ConioLockConsole(CsrGetClientThread()->Process, ApiMessage->Data.GetNumInputEventsRequest.ConsoleHandle, &Console, GENERIC_READ);
     if (! NT_SUCCESS(Status))
@@ -548,7 +548,7 @@ CSR_API(CsrGetNumberOfConsoleInputEvents)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrPeekConsoleInput)
+CSR_API(SrvGetConsoleInput)
 {
     NTSTATUS Status;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
@@ -559,7 +559,7 @@ CSR_API(CsrPeekConsoleInput)
     ConsoleInput* Item;
     UINT NumItems;
 
-    DPRINT("CsrPeekConsoleInput\n");
+    DPRINT("SrvGetConsoleInput\n");
 
     Status = ConioLockConsole(ProcessData, ApiMessage->Data.GetNumInputEventsRequest.ConsoleHandle, &Console, GENERIC_READ);
     if(! NT_SUCCESS(Status))
@@ -606,7 +606,7 @@ CSR_API(CsrPeekConsoleInput)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrWriteConsoleInput)
+CSR_API(SrvWriteConsoleInput)
 {
     PINPUT_RECORD InputRecord;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
@@ -615,7 +615,7 @@ CSR_API(CsrWriteConsoleInput)
     DWORD Length;
     DWORD i;
 
-    DPRINT("CsrWriteConsoleInput\n");
+    DPRINT("SrvWriteConsoleInput\n");
 
     Status = ConioLockConsole(ProcessData, ApiMessage->Data.WriteConsoleInputRequest.ConsoleHandle, &Console, GENERIC_WRITE);
     if (! NT_SUCCESS(Status))
similarity index 84%
rename from win32ss/user/win32csr/conio.h
rename to win32ss/user/consrv/conio.h
index d6f89b1..79cc7cf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: conio.h 55617 2012-02-15 20:29:08Z ion $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -149,22 +149,6 @@ VOID FASTCALL ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags);
 VOID FASTCALL ConioConsoleCtrlEvent(DWORD Event, PCSR_PROCESS ProcessData);
 VOID FASTCALL ConioConsoleCtrlEventTimeout(DWORD Event, PCSR_PROCESS ProcessData,
                                            DWORD Timeout);
-CSR_API(CsrAllocConsole);
-CSR_API(CsrFreeConsole);
-CSR_API(CsrSetConsoleMode);
-CSR_API(CsrGetConsoleMode);
-CSR_API(CsrSetTitle);
-CSR_API(CsrGetTitle);
-CSR_API(CsrHardwareStateProperty);
-CSR_API(CsrGetConsoleWindow);
-CSR_API(CsrSetConsoleIcon);
-CSR_API(CsrGetConsoleCodePage);
-CSR_API(CsrSetConsoleCodePage);
-CSR_API(CsrGetConsoleOutputCodePage);
-CSR_API(CsrSetConsoleOutputCodePage);
-CSR_API(CsrGetProcessList);
-CSR_API(CsrGenerateCtrlEvent);
-CSR_API(CsrGetConsoleSelectionInfo);
 
 /* coninput.c */
 #define ConioLockConsole(ProcessData, Handle, Ptr, Access) \
@@ -172,12 +156,6 @@ CSR_API(CsrGetConsoleSelectionInfo);
 #define ConioUnlockConsole(Console) \
     Win32CsrUnlockObject((Object_t *) Console)
 void WINAPI ConioProcessKey(MSG *msg, PCSRSS_CONSOLE Console, BOOL TextMode);
-CSR_API(CsrReadConsole);
-CSR_API(CsrReadInputEvent);
-CSR_API(CsrFlushInputBuffer);
-CSR_API(CsrGetNumberOfConsoleInputEvents);
-CSR_API(CsrPeekConsoleInput);
-CSR_API(CsrWriteConsoleInput);
 
 /* conoutput.c */
 #define ConioRectHeight(Rect) \
@@ -196,43 +174,12 @@ NTSTATUS FASTCALL CsrInitConsoleScreenBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCRE
 VOID WINAPI ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer);
 DWORD FASTCALL ConioEffectiveCursorSize(PCSRSS_CONSOLE Console, DWORD Scale);
 
-CSR_API(CsrWriteConsole);
-CSR_API(CsrGetScreenBufferInfo);
-CSR_API(CsrSetCursor);
-CSR_API(CsrWriteConsoleOutputChar);
-CSR_API(CsrFillOutputChar);
-CSR_API(CsrWriteConsoleOutputAttrib);
-CSR_API(CsrFillOutputAttrib);
-CSR_API(CsrGetCursorInfo);
-CSR_API(CsrSetCursorInfo);
-CSR_API(CsrSetTextAttrib);
-CSR_API(CsrCreateScreenBuffer);
-CSR_API(CsrSetScreenBuffer);
-CSR_API(CsrWriteConsoleOutput);
-CSR_API(CsrScrollConsoleScreenBuffer);
-CSR_API(CsrReadConsoleOutputChar);
-CSR_API(CsrReadConsoleOutputAttrib);
-CSR_API(CsrReadConsoleOutput);
-CSR_API(CsrSetScreenBufferSize);
-
 /* alias.c */
 VOID IntDeleteAllAliases(struct tagALIAS_HEADER *RootHeader);
-CSR_API(CsrAddConsoleAlias);
-CSR_API(CsrGetConsoleAlias);
-CSR_API(CsrGetAllConsoleAliases);
-CSR_API(CsrGetAllConsoleAliasesLength);
-CSR_API(CsrGetConsoleAliasesExes);
-CSR_API(CsrGetConsoleAliasesExesLength);
 
 /* lineinput.c */
 struct tagHISTORY_BUFFER;
 VOID FASTCALL HistoryDeleteBuffer(struct tagHISTORY_BUFFER *Hist);
-CSR_API(CsrGetCommandHistoryLength);
-CSR_API(CsrGetCommandHistory);
-CSR_API(CsrExpungeCommandHistory);
-CSR_API(CsrSetHistoryNumberCommands);
-CSR_API(CsrGetHistoryInfo);
-CSR_API(CsrSetHistoryInfo);
 VOID FASTCALL LineInputKeyDown(PCSRSS_CONSOLE Console, KEY_EVENT_RECORD *KeyEvent);
 
 /* EOF */
similarity index 97%
rename from win32ss/user/win32csr/conoutput.c
rename to win32ss/user/consrv/conoutput.c
index 5dff1bb..768a59b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * reactos/subsys/csrss/win32csr/conio.c
+ * reactos/win32ss/user/consrv/conio.c
  *
  * Console I/O functions
  *
@@ -63,7 +63,7 @@ CsrInitConsoleScreenBuffer(PCSRSS_CONSOLE Console,
     Buffer->ShowX = 0;
     Buffer->ShowY = 0;
     Buffer->VirtualY = 0;
-    Buffer->Buffer = HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY, Buffer->MaxX * Buffer->MaxY * 2);
+    Buffer->Buffer = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, Buffer->MaxX * Buffer->MaxY * 2);
     if (NULL == Buffer->Buffer)
     {
         return STATUS_INSUFFICIENT_RESOURCES;
@@ -354,7 +354,7 @@ ConioMoveRegion(PCSRSS_SCREEN_BUFFER ScreenBuffer,
     }
 }
 
-CSR_API(CsrWriteConsole)
+CSR_API(SrvWriteConsole)
 {
     NTSTATUS Status;
     PCHAR Buffer;
@@ -365,7 +365,7 @@ CSR_API(CsrWriteConsole)
     ULONG Length;
     ULONG CharSize = (ApiMessage->Data.WriteConsoleRequest.Unicode ? sizeof(WCHAR) : sizeof(CHAR));
 
-    DPRINT("CsrWriteConsole\n");
+    DPRINT("SrvWriteConsole\n");
 
     if (ApiMessage->Header.u1.s1.TotalLength
             < CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE)
@@ -455,8 +455,8 @@ ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer)
         }
     }
 
-    HeapFree(Win32CsrApiHeap, 0, Buffer->Buffer);
-    HeapFree(Win32CsrApiHeap, 0, Buffer);
+    HeapFree(ConSrvHeap, 0, Buffer->Buffer);
+    HeapFree(ConSrvHeap, 0, Buffer);
 }
 
 VOID FASTCALL
@@ -469,14 +469,14 @@ ConioDrawConsole(PCSRSS_CONSOLE Console)
     ConioDrawRegion(Console, &Region);
 }
 
-CSR_API(CsrGetScreenBufferInfo)
+CSR_API(SrvGetConsoleScreenBufferInfo) // CsrGetScreenBufferInfo
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
     PCONSOLE_SCREEN_BUFFER_INFO pInfo;
 
-    DPRINT("CsrGetScreenBufferInfo\n");
+    DPRINT("SrvGetConsoleScreenBufferInfo\n");
 
     Status = ConioLockScreenBuffer(CsrGetClientThread()->Process, ApiMessage->Data.ScreenBufferInfoRequest.ConsoleHandle, &Buff, GENERIC_READ);
     if (! NT_SUCCESS(Status))
@@ -501,7 +501,7 @@ CSR_API(CsrGetScreenBufferInfo)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrSetCursor)
+CSR_API(SrvSetConsoleCursor)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
@@ -509,7 +509,7 @@ CSR_API(CsrSetCursor)
     LONG OldCursorX, OldCursorY;
     LONG NewCursorX, NewCursorY;
 
-    DPRINT("CsrSetCursor\n");
+    DPRINT("SrvSetConsoleCursor\n");
 
     Status = ConioLockScreenBuffer(CsrGetClientThread()->Process, ApiMessage->Data.SetCursorRequest.ConsoleHandle, &Buff, GENERIC_WRITE);
     if (! NT_SUCCESS(Status))
@@ -851,12 +851,12 @@ ConioEffectiveCursorSize(PCSRSS_CONSOLE Console, DWORD Scale)
     return Size;
 }
 
-CSR_API(CsrGetCursorInfo)
+CSR_API(SrvGetConsoleCursorInfo)
 {
     PCSRSS_SCREEN_BUFFER Buff;
     NTSTATUS Status;
 
-    DPRINT("CsrGetCursorInfo\n");
+    DPRINT("SrvGetConsoleCursorInfo\n");
 
     Status = ConioLockScreenBuffer(CsrGetClientThread()->Process, ApiMessage->Data.GetCursorInfoRequest.ConsoleHandle, &Buff, GENERIC_READ);
     if (! NT_SUCCESS(Status))
@@ -870,7 +870,7 @@ CSR_API(CsrGetCursorInfo)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrSetCursorInfo)
+CSR_API(SrvSetConsoleCursorInfo)
 {
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
@@ -878,7 +878,7 @@ CSR_API(CsrSetCursorInfo)
     BOOL Visible;
     NTSTATUS Status;
 
-    DPRINT("CsrSetCursorInfo\n");
+    DPRINT("SrvSetConsoleCursorInfo\n");
 
     Status = ConioLockScreenBuffer(CsrGetClientThread()->Process, ApiMessage->Data.SetCursorInfoRequest.ConsoleHandle, &Buff, GENERIC_WRITE);
     if (! NT_SUCCESS(Status))
@@ -946,14 +946,14 @@ CSR_API(CsrSetTextAttrib)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrCreateScreenBuffer)
+CSR_API(SrvCreateConsoleScreenBuffer)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
     NTSTATUS Status;
 
-    DPRINT("CsrCreateScreenBuffer\n");
+    DPRINT("SrvCreateConsoleScreenBuffer\n");
 
     RtlEnterCriticalSection(&ProcessData->HandleTableLock);
     Status = ConioConsoleFromProcessData(ProcessData, &Console);
@@ -962,7 +962,7 @@ CSR_API(CsrCreateScreenBuffer)
         return Status;
     }
 
-    Buff = HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
+    Buff = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
 
     if (Buff != NULL)
     {
@@ -1010,13 +1010,13 @@ CSR_API(CsrCreateScreenBuffer)
     return Status;
 }
 
-CSR_API(CsrSetScreenBuffer)
+CSR_API(SrvSetConsoleActiveScreenBuffer)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
 
-    DPRINT("CsrSetScreenBuffer\n");
+    DPRINT("SrvSetConsoleActiveScreenBuffer\n");
 
     Status = ConioLockScreenBuffer(CsrGetClientThread()->Process, ApiMessage->Data.SetScreenBufferRequest.OutputHandle, &Buff, GENERIC_WRITE);
     if (! NT_SUCCESS(Status))
@@ -1046,7 +1046,7 @@ CSR_API(CsrSetScreenBuffer)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrWriteConsoleOutput)
+CSR_API(SrvWriteConsoleOutput)
 {
     SHORT i, X, Y, SizeX, SizeY;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
@@ -1061,7 +1061,7 @@ CSR_API(CsrWriteConsoleOutput)
     NTSTATUS Status;
     PBYTE Ptr;
 
-    DPRINT("CsrWriteConsoleOutput\n");
+    DPRINT("SrvWriteConsoleOutput\n");
 
     Status = ConioLockScreenBuffer(ProcessData,
                                    ApiMessage->Data.WriteConsoleOutputRequest.ConsoleHandle,
@@ -1133,7 +1133,7 @@ CSR_API(CsrWriteConsoleOutput)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrScrollConsoleScreenBuffer)
+CSR_API(SrvScrollConsoleScreenBuffer)
 {
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
@@ -1150,7 +1150,7 @@ CSR_API(CsrScrollConsoleScreenBuffer)
     CHAR_INFO Fill;
     CHAR FillChar;
 
-    DPRINT("CsrScrollConsoleScreenBuffer\n");
+    DPRINT("SrvScrollConsoleScreenBuffer\n");
 
     ConsoleHandle = ApiMessage->Data.ScrollConsoleScreenBufferRequest.ConsoleHandle;
     UseClipRectangle = ApiMessage->Data.ScrollConsoleScreenBufferRequest.UseClipRectangle;
@@ -1295,7 +1295,6 @@ CSR_API(CsrReadConsoleOutputChar)
     return STATUS_SUCCESS;
 }
 
-
 CSR_API(CsrReadConsoleOutputAttrib)
 {
     NTSTATUS Status;
@@ -1355,7 +1354,7 @@ CSR_API(CsrReadConsoleOutputAttrib)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrReadConsoleOutput)
+CSR_API(SrvReadConsoleOutput)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCHAR_INFO CharInfo;
@@ -1372,7 +1371,7 @@ CSR_API(CsrReadConsoleOutput)
     LONG X, Y;
     UINT CodePage;
 
-    DPRINT("CsrReadConsoleOutput\n");
+    DPRINT("SrvReadConsoleOutput\n");
 
     Status = ConioLockScreenBuffer(ProcessData, ApiMessage->Data.ReadConsoleOutputRequest.ConsoleHandle, &Buff, GENERIC_READ);
     if (! NT_SUCCESS(Status))
@@ -1439,7 +1438,7 @@ CSR_API(CsrReadConsoleOutput)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrSetScreenBufferSize)
+CSR_API(SrvSetConsoleScreenBufferSize)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
similarity index 89%
rename from win32ss/user/win32csr/console.c
rename to win32ss/user/consrv/console.c
index 93186eb..d522c11 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * reactos/subsys/csrss/win32csr/conio.c
+ * reactos/win32ss/user/consrv/conio.c
  *
  * Console I/O functions
  *
@@ -117,7 +117,7 @@ CsrInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
     GuiMode = DtbgIsDesktopVisible();
 
     /* allocate console screen buffer */
-    NewBuffer = HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
+    NewBuffer = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
     if (NULL == NewBuffer)
     {
         RtlFreeUnicodeString(&Console->Title);
@@ -145,7 +145,7 @@ CsrInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
         Status = GuiInitConsole(Console, ShowCmd);
         if (! NT_SUCCESS(Status))
         {
-            HeapFree(Win32CsrApiHeap,0, NewBuffer);
+            HeapFree(ConSrvHeap,0, NewBuffer);
             RtlFreeUnicodeString(&Console->Title);
             DeleteCriticalSection(&Console->Lock);
             CloseHandle(Console->ActiveEvent);
@@ -161,7 +161,7 @@ CsrInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
         RtlFreeUnicodeString(&Console->Title);
         DeleteCriticalSection(&Console->Lock);
         CloseHandle(Console->ActiveEvent);
-        HeapFree(Win32CsrApiHeap, 0, NewBuffer);
+        HeapFree(ConSrvHeap, 0, NewBuffer);
         DPRINT1("CsrInitConsoleScreenBuffer: failed\n");
         return Status;
     }
@@ -172,14 +172,14 @@ CsrInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrAllocConsole)
+CSR_API(SrvAllocConsole)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
     NTSTATUS Status = STATUS_SUCCESS;
     BOOLEAN NewConsole = FALSE;
 
-    DPRINT("CsrAllocConsole\n");
+    DPRINT("SrvAllocConsole\n");
 
     RtlEnterCriticalSection(&ProcessData->HandleTableLock);
     if (ProcessData->Console)
@@ -203,7 +203,7 @@ CSR_API(CsrAllocConsole)
     {
         /* Allocate a console structure */
         NewConsole = TRUE;
-        Console = HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_CONSOLE));
+        Console = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_CONSOLE));
         if (NULL == Console)
         {
             DPRINT1("Not enough memory for console\n");
@@ -219,7 +219,7 @@ CSR_API(CsrAllocConsole)
         if (!NT_SUCCESS(Status))
         {
             DPRINT1("Console init failed\n");
-            HeapFree(Win32CsrApiHeap, 0, Console);
+            HeapFree(ConSrvHeap, 0, Console);
             RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
             return Status;
         }
@@ -312,7 +312,7 @@ CSR_API(CsrAllocConsole)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrFreeConsole)
+CSR_API(SrvFreeConsole)
 {
     Win32CsrReleaseConsole(CsrGetClientThread()->Process);
     return STATUS_SUCCESS;
@@ -332,12 +332,12 @@ ConioDeleteConsole(Object_t *Object)
         Event = (ConsoleInput *) Console->InputEvents.Flink;
         Console->InputEvents.Flink = Console->InputEvents.Flink->Flink;
         Console->InputEvents.Flink->Flink->Blink = &Console->InputEvents;
-        HeapFree(Win32CsrApiHeap, 0, Event);
+        HeapFree(ConSrvHeap, 0, Event);
     }
 
     ConioCleanupConsole(Console);
     if (Console->LineBuffer)
-        RtlFreeHeap(Win32CsrApiHeap, 0, Console->LineBuffer);
+        RtlFreeHeap(ConSrvHeap, 0, Console->LineBuffer);
     while (!IsListEmpty(&Console->HistoryBuffers))
         HistoryDeleteBuffer((struct tagHISTORY_BUFFER *)Console->HistoryBuffers.Flink);
 
@@ -352,7 +352,7 @@ ConioDeleteConsole(Object_t *Object)
     DeleteCriticalSection(&Console->Lock);
     RtlFreeUnicodeString(&Console->Title);
     IntDeleteAllAliases(Console->Aliases);
-    HeapFree(Win32CsrApiHeap, 0, Console);
+    HeapFree(ConSrvHeap, 0, Console);
 }
 
 VOID WINAPI
@@ -383,13 +383,13 @@ ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags)
     }
 }
 
-CSR_API(CsrSetConsoleMode)
+CSR_API(SrvSetConsoleMode)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;
 
-    DPRINT("CsrSetConsoleMode\n");
+    DPRINT("SrvSetConsoleMode\n");
 
     Status = Win32CsrLockObject(CsrGetClientThread()->Process,
                                 ApiMessage->Data.SetConsoleModeRequest.ConsoleHandle,
@@ -418,13 +418,13 @@ CSR_API(CsrSetConsoleMode)
     return Status;
 }
 
-CSR_API(CsrGetConsoleMode)
+CSR_API(SrvGetConsoleMode)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
     PCSRSS_SCREEN_BUFFER Buff;   /* gee, I really wish I could use an anonymous union here */
 
-    DPRINT("CsrGetConsoleMode\n");
+    DPRINT("SrvGetConsoleMode\n");
 
     Status = Win32CsrLockObject(CsrGetClientThread()->Process, ApiMessage->Data.GetConsoleModeRequest.ConsoleHandle,
                                 (Object_t **) &Console, GENERIC_READ, 0);
@@ -451,14 +451,14 @@ CSR_API(CsrGetConsoleMode)
     return Status;
 }
 
-CSR_API(CsrSetTitle)
+CSR_API(SrvSetConsoleTitle)
 {
     NTSTATUS Status;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
     PWCHAR Buffer;
 
-    DPRINT("CsrSetTitle\n");
+    DPRINT("SrvSetConsoleTitle\n");
 
     if (!Win32CsrValidateBuffer(ProcessData, ApiMessage->Data.SetTitleRequest.Title,
                                 ApiMessage->Data.SetTitleRequest.Length, 1))
@@ -496,14 +496,14 @@ CSR_API(CsrSetTitle)
     return Status;
 }
 
-CSR_API(CsrGetTitle)
+CSR_API(SrvGetConsoleTitle)
 {
     NTSTATUS Status;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
     DWORD Length;
 
-    DPRINT("CsrGetTitle\n");
+    DPRINT("SrvGetConsoleTitle\n");
 
 
     if (!Win32CsrValidateBuffer(ProcessData, ApiMessage->Data.GetTitleRequest.Title,
@@ -548,7 +548,7 @@ CSR_API(CsrGetTitle)
  *             with NT's, but values are not.
  */
 static NTSTATUS FASTCALL
-SetConsoleHardwareState (PCSRSS_CONSOLE Console, DWORD ConsoleHwState)
+SetConsoleHardwareState(PCSRSS_CONSOLE Console, DWORD ConsoleHwState)
 {
     DPRINT1("Console Hardware State: %d\n", ConsoleHwState);
 
@@ -568,12 +568,12 @@ SetConsoleHardwareState (PCSRSS_CONSOLE Console, DWORD ConsoleHwState)
     return STATUS_INVALID_PARAMETER_3; /* Client: (handle, set_get, [mode]) */
 }
 
-CSR_API(CsrHardwareStateProperty)
+CSR_API(SrvGetConsoleHardwareState)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrHardwareStateProperty\n");
+    DPRINT("SrvGetConsoleHardwareState\n");
 
     Status = ConioLockConsole(CsrGetClientThread()->Process,
                               ApiMessage->Data.ConsoleHardwareStateRequest.ConsoleHandle,
@@ -606,12 +606,50 @@ CSR_API(CsrHardwareStateProperty)
     return Status;
 }
 
-CSR_API(CsrGetConsoleWindow)
+CSR_API(SrvSetConsoleHardwareState)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrGetConsoleWindow\n");
+    DPRINT("SrvSetConsoleHardwareState\n");
+
+    Status = ConioLockConsole(CsrGetClientThread()->Process,
+                              ApiMessage->Data.ConsoleHardwareStateRequest.ConsoleHandle,
+                              &Console,
+                              GENERIC_READ);
+    if (! NT_SUCCESS(Status))
+    {
+        DPRINT1("Failed to get console handle in SetConsoleHardwareState\n");
+        return Status;
+    }
+
+    switch (ApiMessage->Data.ConsoleHardwareStateRequest.SetGet)
+    {
+    case CONSOLE_HARDWARE_STATE_GET:
+        ApiMessage->Data.ConsoleHardwareStateRequest.State = Console->HardwareState;
+        break;
+
+    case CONSOLE_HARDWARE_STATE_SET:
+        DPRINT("Setting console hardware state.\n");
+        Status = SetConsoleHardwareState(Console, ApiMessage->Data.ConsoleHardwareStateRequest.State);
+        break;
+
+    default:
+        Status = STATUS_INVALID_PARAMETER_2; /* Client: (handle, [set_get], mode) */
+        break;
+    }
+
+    ConioUnlockConsole(Console);
+
+    return Status;
+}
+
+CSR_API(SrvGetConsoleWindow)
+{
+    PCSRSS_CONSOLE Console;
+    NTSTATUS Status;
+
+    DPRINT("SrvGetConsoleWindow\n");
 
     Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (! NT_SUCCESS(Status))
@@ -625,12 +663,12 @@ CSR_API(CsrGetConsoleWindow)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrSetConsoleIcon)
+CSR_API(SrvSetConsoleIcon)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrSetConsoleIcon\n");
+    DPRINT("SrvSetConsoleIcon\n");
 
     Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (! NT_SUCCESS(Status))
@@ -645,12 +683,12 @@ CSR_API(CsrSetConsoleIcon)
     return Status;
 }
 
-CSR_API(CsrGetConsoleCodePage)
+CSR_API(SrvGetConsoleCP)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrGetConsoleCodePage\n");
+    DPRINT("SrvGetConsoleCP\n");
 
     Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (! NT_SUCCESS(Status))
@@ -663,12 +701,12 @@ CSR_API(CsrGetConsoleCodePage)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrSetConsoleCodePage)
+CSR_API(CsrGetConsoleOutputCodePage) // TODO: Merge this function with the other one.
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrSetConsoleCodePage\n");
+    DPRINT("CsrGetConsoleOutputCodePage\n");
 
     Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (! NT_SUCCESS(Status))
@@ -676,23 +714,17 @@ CSR_API(CsrSetConsoleCodePage)
         return Status;
     }
 
-    if (IsValidCodePage(ApiMessage->Data.SetConsoleCodePage.CodePage))
-    {
-        Console->CodePage = ApiMessage->Data.SetConsoleCodePage.CodePage;
-        ConioUnlockConsole(Console);
-        return STATUS_SUCCESS;
-    }
-
+    ApiMessage->Data.GetConsoleOutputCodePage.CodePage = Console->OutputCodePage;
     ConioUnlockConsole(Console);
-    return STATUS_INVALID_PARAMETER;
+    return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGetConsoleOutputCodePage)
+CSR_API(SrvSetConsoleCP)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
 
-    DPRINT("CsrGetConsoleOutputCodePage\n");
+    DPRINT("SrvSetConsoleCP\n");
 
     Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
     if (! NT_SUCCESS(Status))
@@ -700,12 +732,18 @@ CSR_API(CsrGetConsoleOutputCodePage)
         return Status;
     }
 
-    ApiMessage->Data.GetConsoleOutputCodePage.CodePage = Console->OutputCodePage;
+    if (IsValidCodePage(ApiMessage->Data.SetConsoleCodePage.CodePage))
+    {
+        Console->CodePage = ApiMessage->Data.SetConsoleCodePage.CodePage;
+        ConioUnlockConsole(Console);
+        return STATUS_SUCCESS;
+    }
+
     ConioUnlockConsole(Console);
-    return STATUS_SUCCESS;
+    return STATUS_INVALID_PARAMETER;
 }
 
-CSR_API(CsrSetConsoleOutputCodePage)
+CSR_API(CsrSetConsoleOutputCodePage) // TODO: Merge this function with the other one.
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status;
@@ -729,7 +767,7 @@ CSR_API(CsrSetConsoleOutputCodePage)
     return STATUS_INVALID_PARAMETER;
 }
 
-CSR_API(CsrGetProcessList)
+CSR_API(SrvGetConsoleProcessList)
 {
     PDWORD Buffer;
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
@@ -739,7 +777,7 @@ CSR_API(CsrGetProcessList)
     ULONG nItems = 0;
     NTSTATUS Status;
 
-    DPRINT("CsrGetProcessList\n");
+    DPRINT("SrvGetConsoleProcessList\n");
 
     Buffer = ApiMessage->Data.GetProcessListRequest.ProcessId;
     if (!Win32CsrValidateBuffer(ProcessData, Buffer, ApiMessage->Data.GetProcessListRequest.nMaxIds, sizeof(DWORD)))
@@ -768,7 +806,7 @@ CSR_API(CsrGetProcessList)
     return STATUS_SUCCESS;
 }
 
-CSR_API(CsrGenerateCtrlEvent)
+CSR_API(SrvGenerateConsoleCtrlEvent)
 {
     PCSRSS_CONSOLE Console;
     PCSR_PROCESS current;
@@ -801,7 +839,7 @@ CSR_API(CsrGenerateCtrlEvent)
     return Status;
 }
 
-CSR_API(CsrGetConsoleSelectionInfo)
+CSR_API(SrvGetConsoleSelectionInfo)
 {
     NTSTATUS Status;
     PCSRSS_CONSOLE Console;
diff --git a/win32ss/user/consrv/consrv.h b/win32ss/user/consrv/consrv.h
new file mode 100644 (file)
index 0000000..e49fd6a
--- /dev/null
@@ -0,0 +1,96 @@
+
+#ifndef __CONSRV_H__
+#define __CONSRV_H__
+
+#pragma once
+
+/* PSDK/NDK Headers */
+#define WIN32_NO_STATUS
+#include <windows.h>
+#define NTOS_MODE_USER
+#include <ndk/ntndk.h>
+
+/* CSRSS Header */
+#include <csr/csrsrv.h>
+
+/* CONSOLE Headers */
+#include <win/conmsg.h>
+// #include <win/base.h>
+
+#include "guiconsole.h"
+#include "tuiconsole.h"
+
+/* Shared header with console.dll */
+#include "console.h"
+
+extern HANDLE ConSrvHeap;
+extern HANDLE BaseSrvSharedHeap;
+extern PBASE_STATIC_SERVER_DATA BaseStaticServerData;
+
+
+/* console.c */
+CSR_API(SrvAllocConsole);
+CSR_API(SrvFreeConsole);
+CSR_API(SrvSetConsoleMode);
+CSR_API(SrvGetConsoleMode);
+CSR_API(SrvSetConsoleTitle);
+CSR_API(SrvGetConsoleTitle);
+CSR_API(SrvGetConsoleHardwareState);
+CSR_API(SrvSetConsoleHardwareState);
+CSR_API(SrvGetConsoleWindow);
+CSR_API(SrvSetConsoleIcon);
+CSR_API(SrvGetConsoleCP);
+CSR_API(SrvSetConsoleCP);
+CSR_API(CsrGetConsoleOutputCodePage);
+CSR_API(CsrSetConsoleOutputCodePage);
+CSR_API(SrvGetConsoleProcessList);
+CSR_API(SrvGenerateConsoleCtrlEvent);
+CSR_API(SrvGetConsoleSelectionInfo);
+
+/* coninput.c */
+CSR_API(SrvReadConsole);
+CSR_API(CsrReadInputEvent);
+CSR_API(SrvFlushConsoleInputBuffer);
+CSR_API(SrvGetConsoleNumberOfInputEvents);
+CSR_API(SrvGetConsoleInput);
+CSR_API(SrvWriteConsoleInput);
+
+/* conoutput.c */
+CSR_API(SrvWriteConsole);
+CSR_API(SrvGetConsoleScreenBufferInfo);
+CSR_API(SrvSetConsoleCursor);
+CSR_API(CsrWriteConsoleOutputChar);
+CSR_API(CsrFillOutputChar);
+CSR_API(CsrWriteConsoleOutputAttrib);
+CSR_API(CsrFillOutputAttrib);
+CSR_API(SrvGetConsoleCursorInfo);
+CSR_API(SrvSetConsoleCursorInfo);
+CSR_API(CsrSetTextAttrib);
+CSR_API(SrvCreateConsoleScreenBuffer);
+CSR_API(SrvSetConsoleActiveScreenBuffer);
+CSR_API(SrvWriteConsoleOutput);
+CSR_API(SrvScrollConsoleScreenBuffer);
+CSR_API(CsrReadConsoleOutputChar);
+CSR_API(CsrReadConsoleOutputAttrib);
+CSR_API(SrvReadConsoleOutput);
+CSR_API(SrvSetConsoleScreenBufferSize);
+
+/* alias.c */
+CSR_API(SrvAddConsoleAlias);
+CSR_API(SrvGetConsoleAlias);
+CSR_API(SrvGetConsoleAliases);
+CSR_API(SrvGetConsoleAliasesLength);
+CSR_API(SrvGetConsoleAliasExes);
+CSR_API(SrvGetConsoleAliasExesLength);
+
+/* lineinput.c */
+CSR_API(SrvGetConsoleCommandHistoryLength);
+CSR_API(SrvGetConsoleCommandHistory);
+CSR_API(SrvExpungeConsoleCommandHistory);
+CSR_API(SrvSetConsoleNumberOfCommands);
+CSR_API(SrvGetConsoleHistory);
+CSR_API(SrvSetConsoleHistory);
+
+#endif // __CONSRV_H__
+
+/* EOF */
diff --git a/win32ss/user/consrv/consrv.rc b/win32ss/user/consrv/consrv.rc
new file mode 100644 (file)
index 0000000..2c29736
--- /dev/null
@@ -0,0 +1,7 @@
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION   "ReactOS Console Server DLL\0"
+#define REACTOS_STR_INTERNAL_NAME      "consrv\0"
+#define REACTOS_STR_ORIGINAL_FILENAME  "consrv.dll\0"
+#include <reactos/version.rc>
+
+#include "rsrc.rc"
diff --git a/win32ss/user/consrv/consrv.spec b/win32ss/user/consrv/consrv.spec
new file mode 100644 (file)
index 0000000..c883165
--- /dev/null
@@ -0,0 +1 @@
+@ stdcall ConServerDllInitialization(ptr)
similarity index 98%
rename from win32ss/user/win32csr/guiconsole.c
rename to win32ss/user/consrv/guiconsole.c
index 6a2c4c2..bc10c53 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id$
+/* $Id: guiconsole.c 57326 2012-09-18 21:45:00Z akhaldi $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
- * FILE:            subsys/csrss/win32csr/guiconsole.c
+ * FILE:            win32ss/user/consrv/guiconsole.c
  * PURPOSE:         Implementation of gui-mode consoles
  */
 
 #include <debug.h>
 
 /* Not defined in any header file */
-extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
+// extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
+// From win32ss/user/win32csr/dllmain.c
+VOID
+WINAPI
+PrivateCsrssManualGuiCheck(LONG Check)
+{
+    NtUserCallOneParam(Check, ONEPARAM_ROUTINE_CSRSS_GUICHECK);
+}
 
 /* GLOBALS *******************************************************************/
 
@@ -730,7 +737,7 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
     {
         DPRINT1("GuiConsoleNcCreate: CreateFont failed\n");
         DeleteCriticalSection(&GuiData->Lock);
-        HeapFree(Win32CsrApiHeap, 0, GuiData);
+        HeapFree(ConSrvHeap, 0, GuiData);
         return FALSE;
     }
     Dc = GetDC(hWnd);
@@ -739,7 +746,7 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
         DPRINT1("GuiConsoleNcCreate: GetDC failed\n");
         DeleteObject(GuiData->Font);
         DeleteCriticalSection(&GuiData->Lock);
-        HeapFree(Win32CsrApiHeap, 0, GuiData);
+        HeapFree(ConSrvHeap, 0, GuiData);
         return FALSE;
     }
     OldFont = SelectObject(Dc, GuiData->Font);
@@ -749,7 +756,7 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
         ReleaseDC(hWnd, Dc);
         DeleteObject(GuiData->Font);
         DeleteCriticalSection(&GuiData->Lock);
-        HeapFree(Win32CsrApiHeap, 0, GuiData);
+        HeapFree(ConSrvHeap, 0, GuiData);
         return FALSE;
     }
     if (! GetTextMetricsW(Dc, &Metrics))
@@ -759,7 +766,7 @@ GuiConsoleHandleNcCreate(HWND hWnd, CREATESTRUCTW *Create)
         ReleaseDC(hWnd, Dc);
         DeleteObject(GuiData->Font);
         DeleteCriticalSection(&GuiData->Lock);
-        HeapFree(Win32CsrApiHeap, 0, GuiData);
+        HeapFree(ConSrvHeap, 0, GuiData);
         return FALSE;
     }
     GuiData->CharWidth = Metrics.tmMaxCharWidth;
@@ -1299,7 +1306,7 @@ GuiConsoleHandleNcDestroy(HWND hWnd)
     if (GuiData->ConsoleLibrary)
         FreeLibrary(GuiData->ConsoleLibrary);
 
-    HeapFree(Win32CsrApiHeap, 0, GuiData);
+    HeapFree(ConSrvHeap, 0, GuiData);
 }
 
 static COORD
@@ -1756,7 +1763,7 @@ GuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD
     if (Size.X == ScreenBuffer->MaxX && Size.Y == ScreenBuffer->MaxY)
         return STATUS_SUCCESS;
 
-    Buffer = HeapAlloc(Win32CsrApiHeap, 0, Size.X * Size.Y * 2);
+    Buffer = HeapAlloc(ConSrvHeap, 0, Size.X * Size.Y * 2);
     if (!Buffer)
         return STATUS_NO_MEMORY;
 
@@ -1807,7 +1814,7 @@ GuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD
     }
 
     (void)InterlockedExchangePointer((PVOID volatile  *)&ScreenBuffer->Buffer, Buffer);
-    HeapFree(Win32CsrApiHeap, 0, OldBuffer);
+    HeapFree(ConSrvHeap, 0, OldBuffer);
     ScreenBuffer->MaxX = Size.X;
     ScreenBuffer->MaxY = Size.Y;
     ScreenBuffer->VirtualY = 0;
@@ -2071,7 +2078,7 @@ GuiConsoleNotifyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
         SetWindowLongW(hWnd, GWL_USERDATA, 0);
         return 0;
     case PM_CREATE_CONSOLE:
-        Buffer = HeapAlloc(Win32CsrApiHeap, 0,
+        Buffer = HeapAlloc(ConSrvHeap, 0,
                            Console->Title.Length + sizeof(WCHAR));
         if (NULL != Buffer)
         {
@@ -2097,7 +2104,7 @@ GuiConsoleNotifyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
                                     (PVOID) Console);
         if (NULL != Buffer)
         {
-            HeapFree(Win32CsrApiHeap, 0, Buffer);
+            HeapFree(ConSrvHeap, 0, Buffer);
         }
         if (NULL != NewWindow)
         {
@@ -2229,7 +2236,7 @@ GuiChangeTitle(PCSRSS_CONSOLE Console)
 {
     PWCHAR Buffer, Title;
 
-    Buffer = HeapAlloc(Win32CsrApiHeap, 0,
+    Buffer = HeapAlloc(ConSrvHeap, 0,
                        Console->Title.Length + sizeof(WCHAR));
     if (NULL != Buffer)
     {
@@ -2246,7 +2253,7 @@ GuiChangeTitle(PCSRSS_CONSOLE Console)
 
     if (NULL != Buffer)
     {
-        HeapFree(Win32CsrApiHeap, 0, Buffer);
+        HeapFree(ConSrvHeap, 0, Buffer);
     }
 
     return TRUE;
@@ -2331,7 +2338,7 @@ GuiInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
             return STATUS_UNSUCCESSFUL;
         }
     }
-    GuiData = HeapAlloc(Win32CsrApiHeap, HEAP_ZERO_MEMORY,
+    GuiData = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY,
                         sizeof(GUI_CONSOLE_DATA));
     if (!GuiData)
     {
similarity index 79%
rename from win32ss/user/win32csr/guiconsole.h
rename to win32ss/user/consrv/guiconsole.h
index b9560d1..56e2538 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id$
+/* $Id: guiconsole.h 57326 2012-09-18 21:45:00Z akhaldi $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
- * FILE:            subsys/csrss/win32csr/guiconsole.h
+ * FILE:            win32ss/user/consrv/guiconsole.h
  * PURPOSE:         Interface to GUI consoles
  */
 
similarity index 92%
rename from win32ss/user/win32csr/handle.c
rename to win32ss/user/consrv/handle.c
index dec33a2..703c5bb 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: handle.c 57570 2012-10-17 23:10:40Z hbelusca $
  *
  * reactos/subsys/csrss/api/handle.c
  *
@@ -36,8 +36,7 @@ AdjustHandleCounts(PCSRSS_HANDLE Entry, INT Change)
 }
 
 static VOID
-Win32CsrCreateHandleEntry(
-    PCSRSS_HANDLE Entry)
+Win32CsrCreateHandleEntry(PCSRSS_HANDLE Entry)
 {
     Object_t *Object = Entry->Object;
     EnterCriticalSection(&Object->Console->Lock);
@@ -46,8 +45,7 @@ Win32CsrCreateHandleEntry(
 }
 
 static VOID
-Win32CsrCloseHandleEntry(
-    PCSRSS_HANDLE Entry)
+Win32CsrCloseHandleEntry(PCSRSS_HANDLE Entry)
 {
     Object_t *Object = Entry->Object;
     if (Object != NULL)
@@ -72,9 +70,8 @@ Win32CsrCloseHandleEntry(
 
 NTSTATUS
 FASTCALL
-Win32CsrReleaseObject(
-    PCSR_PROCESS ProcessData,
-    HANDLE Handle)
+Win32CsrReleaseObject(PCSR_PROCESS ProcessData,
+                      HANDLE Handle)
 {
     ULONG_PTR h = (ULONG_PTR)Handle >> 2;
     Object_t *Object;
@@ -134,8 +131,7 @@ Win32CsrUnlockObject(Object_t *Object)
 
 VOID
 WINAPI
-Win32CsrReleaseConsole(
-    PCSR_PROCESS ProcessData)
+Win32CsrReleaseConsole(PCSR_PROCESS ProcessData)
 {
     PCSRSS_CONSOLE Console;
     ULONG i;
@@ -146,7 +142,7 @@ Win32CsrReleaseConsole(
     for (i = 0; i < ProcessData->HandleTableSize; i++)
         Win32CsrCloseHandleEntry(&ProcessData->HandleTable[i]);
     ProcessData->HandleTableSize = 0;
-    RtlFreeHeap(Win32CsrApiHeap, 0, ProcessData->HandleTable);
+    RtlFreeHeap(ConSrvHeap, 0, ProcessData->HandleTable);
     ProcessData->HandleTable = NULL;
 
     Console = ProcessData->Console;
@@ -166,13 +162,12 @@ Win32CsrReleaseConsole(
 
 NTSTATUS
 FASTCALL
-Win32CsrInsertObject(
-    PCSR_PROCESS ProcessData,
-    PHANDLE Handle,
-    Object_t *Object,
-    DWORD Access,
-    BOOL Inheritable,
-    DWORD ShareMode)
+Win32CsrInsertObject(PCSR_PROCESS ProcessData,
+                     PHANDLE Handle,
+                     Object_t *Object,
+                     DWORD Access,
+                     BOOL Inheritable,
+                     DWORD ShareMode)
 {
     ULONG i;
     PCSRSS_HANDLE Block;
@@ -188,7 +183,7 @@ Win32CsrInsertObject(
     }
     if (i >= ProcessData->HandleTableSize)
     {
-        Block = RtlAllocateHeap(Win32CsrApiHeap,
+        Block = RtlAllocateHeap(ConSrvHeap,
                                 HEAP_ZERO_MEMORY,
                                 (ProcessData->HandleTableSize + 64) * sizeof(CSRSS_HANDLE));
         if (Block == NULL)
@@ -199,7 +194,7 @@ Win32CsrInsertObject(
         RtlCopyMemory(Block,
                       ProcessData->HandleTable,
                       ProcessData->HandleTableSize * sizeof(CSRSS_HANDLE));
-        RtlFreeHeap(Win32CsrApiHeap, 0, ProcessData->HandleTable);
+        RtlFreeHeap(ConSrvHeap, 0, ProcessData->HandleTable);
         ProcessData->HandleTable = Block;
         ProcessData->HandleTableSize += 64;
     }
@@ -215,9 +210,8 @@ Win32CsrInsertObject(
 
 NTSTATUS
 WINAPI
-Win32CsrDuplicateHandleTable(
-    PCSR_PROCESS SourceProcessData,
-    PCSR_PROCESS TargetProcessData)
+Win32CsrDuplicateHandleTable(PCSR_PROCESS SourceProcessData,
+                             PCSR_PROCESS TargetProcessData)
 {
     ULONG i;
     
@@ -233,7 +227,7 @@ Win32CsrDuplicateHandleTable(
 
     /* we are called from CreateProcessData, it isn't necessary to lock the target process data */
 
-    TargetProcessData->HandleTable = RtlAllocateHeap(Win32CsrApiHeap,
+    TargetProcessData->HandleTable = RtlAllocateHeap(ConSrvHeap,
                                                      HEAP_ZERO_MEMORY,
                                                      SourceProcessData->HandleTableSize
                                                              * sizeof(CSRSS_HANDLE));
@@ -302,12 +296,14 @@ CSR_API(CsrGetHandle)
     return Status;
 }
 
-CSR_API(CsrCloseHandle)
+// CSR_API(CsrSetHandle) ??
+
+CSR_API(SrvCloseHandle)
 {
     return Win32CsrReleaseObject(CsrGetClientThread()->Process, ApiMessage->Data.CloseHandleRequest.Handle);
 }
 
-CSR_API(CsrVerifyHandle)
+CSR_API(SrvVerifyConsoleIoHandle)
 {
     ULONG_PTR Index;
     NTSTATUS Status = STATUS_SUCCESS;
@@ -326,7 +322,7 @@ CSR_API(CsrVerifyHandle)
     return Status;
 }
 
-CSR_API(CsrDuplicateHandle)
+CSR_API(SrvDuplicateHandle)
 {
     ULONG_PTR Index;
     PCSRSS_HANDLE Entry;
diff --git a/win32ss/user/consrv/init.c b/win32ss/user/consrv/init.c
new file mode 100644 (file)
index 0000000..4472e66
--- /dev/null
@@ -0,0 +1,384 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Console Server DLL
+ * FILE:            win32ss/user/consrv/init.c
+ * PURPOSE:         Initialization
+ * PROGRAMMERS:     Hermes Belusca-Maito (hermes.belusca@sfr.fr)
+ */
+
+#include "consrv.h"
+
+#define NDEBUG
+#include <debug.h>
+
+HANDLE DllHandle = NULL;
+// HANDLE BaseApiPort = NULL;
+
+/* Memory */
+HANDLE ConSrvHeap = NULL;          // Our own heap.
+// HANDLE BaseSrvSharedHeap = NULL;    // Shared heap with CSR. (CsrSrvSharedSectionHeap)
+// PBASE_STATIC_SERVER_DATA BaseStaticServerData = NULL;   // Data that we can share amongst processes. Initialized inside BaseSrvSharedHeap.
+
+// Windows 2k3 tables, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
+// plus a little bit of Windows 7. It is for testing purposes. After that I will add stubs.
+// Some names are also deduced from the subsystems/win32/csrss/csrsrv/server.c ones.
+PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber] =
+{
+    // SrvOpenConsole,
+    SrvGetConsoleInput,
+    SrvWriteConsoleInput,
+    SrvReadConsoleOutput,
+    SrvWriteConsoleOutput,
+    // SrvReadConsoleOutputString,
+    // SrvWriteConsoleOutputString,
+    // SrvFillConsoleOutput,
+    SrvGetConsoleMode,
+    // SrvGetConsoleNumberOfFonts,
+    SrvGetConsoleNumberOfInputEvents,
+    SrvGetConsoleScreenBufferInfo,
+    SrvGetConsoleCursorInfo,
+    // SrvGetConsoleMouseInfo,
+    // SrvGetConsoleFontInfo,
+    // SrvGetConsoleFontSize,
+    // SrvGetConsoleCurrentFont,
+    SrvSetConsoleMode,
+    SrvSetConsoleActiveScreenBuffer,
+    SrvFlushConsoleInputBuffer,
+    // SrvGetLargestConsoleWindowSize,
+    SrvSetConsoleScreenBufferSize,
+    // SrvSetConsoleCursorPosition,
+    SrvSetConsoleCursorInfo,
+    // SrvSetConsoleWindowInfo,
+    SrvScrollConsoleScreenBuffer,
+    // SrvSetConsoleTextAttribute,
+    // SrvSetConsoleFont,
+    SrvSetConsoleIcon,
+    SrvReadConsole,
+    SrvWriteConsole,
+    SrvDuplicateHandle,
+    // SrvGetHandleInformation,
+    // SrvSetHandleInformation,
+    SrvCloseHandle,
+    SrvVerifyConsoleIoHandle,
+    SrvAllocConsole,
+    SrvFreeConsole,
+    SrvGetConsoleTitle,
+    SrvSetConsoleTitle,
+    SrvCreateConsoleScreenBuffer,
+    // SrvInvalidateBitMapRect,
+    // SrvVDMConsoleOperation,
+    SrvSetConsoleCursor,
+    // SrvShowConsoleCursor,
+    // SrvConsoleMenuControl,
+    // SrvSetConsolePalette,
+    // SrvSetConsoleDisplayMode,
+    // SrvRegisterConsoleVDM,
+    SrvGetConsoleHardwareState,
+    SrvSetConsoleHardwareState,
+    // SrvGetConsoleDisplayMode,
+    SrvAddConsoleAlias,
+    SrvGetConsoleAlias,
+    SrvGetConsoleAliasesLength,
+    SrvGetConsoleAliasExesLength,
+    SrvGetConsoleAliases,
+    SrvGetConsoleAliasExes,
+    SrvExpungeConsoleCommandHistory,
+    SrvSetConsoleNumberOfCommands,
+    SrvGetConsoleCommandHistoryLength,
+    SrvGetConsoleCommandHistory,
+    // SrvSetConsoleCommandHistoryMode,
+    SrvGetConsoleCP,
+    SrvSetConsoleCP,
+    // SrvSetConsoleKeyShortcuts,
+    // SrvSetConsoleMenuClose,
+    // SrvConsoleNotifyLastClose,
+    SrvGenerateConsoleCtrlEvent,
+    // SrvGetConsoleKeyboardLayoutName,
+    SrvGetConsoleWindow,
+    // SrvGetConsoleCharType,
+    // SrvSetConsoleLocalEUDC,
+    // SrvSetConsoleCursorMode,
+    // SrvGetConsoleCursorMode,
+    // SrvRegisterConsoleOS2,
+    // SrvSetConsoleOS2OemFormat,
+    // SrvGetConsoleNlsMode,
+    // SrvSetConsoleNlsMode,
+    // SrvRegisterConsoleIME,
+    // SrvUnregisterConsoleIME,
+    // SrvGetConsoleLangId,
+    // SrvAttachConsole,
+    SrvGetConsoleSelectionInfo,
+    SrvGetConsoleProcessList,
+    SrvGetConsoleHistory,
+    SrvSetConsoleHistory
+};
+
+BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber] =
+{
+    // FALSE,   // SrvOpenConsole,
+    FALSE,   // SrvGetConsoleInput,
+    FALSE,   // SrvWriteConsoleInput,
+    FALSE,   // SrvReadConsoleOutput,
+    FALSE,   // SrvWriteConsoleOutput,
+    // FALSE,   // SrvReadConsoleOutputString,
+    // FALSE,   // SrvWriteConsoleOutputString,
+    // FALSE,   // SrvFillConsoleOutput,
+    FALSE,   // SrvGetConsoleMode,
+    // FALSE,   // SrvGetConsoleNumberOfFonts,
+    FALSE,   // SrvGetConsoleNumberOfInputEvents,
+    FALSE,   // SrvGetConsoleScreenBufferInfo,
+    FALSE,   // SrvGetConsoleCursorInfo,
+    // FALSE,   // SrvGetConsoleMouseInfo,
+    // FALSE,   // SrvGetConsoleFontInfo,
+    // FALSE,   // SrvGetConsoleFontSize,
+    // FALSE,   // SrvGetConsoleCurrentFont,
+    FALSE,   // SrvSetConsoleMode,
+    FALSE,   // SrvSetConsoleActiveScreenBuffer,
+    FALSE,   // SrvFlushConsoleInputBuffer,
+    // FALSE,   // SrvGetLargestConsoleWindowSize,
+    FALSE,   // SrvSetConsoleScreenBufferSize,
+    // FALSE,   // SrvSetConsoleCursorPosition,
+    FALSE,   // SrvSetConsoleCursorInfo,
+    // FALSE,   // SrvSetConsoleWindowInfo,
+    FALSE,   // SrvScrollConsoleScreenBuffer,
+    // FALSE,   // SrvSetConsoleTextAttribute,
+    // FALSE,   // SrvSetConsoleFont,
+    FALSE,   // SrvSetConsoleIcon,
+    FALSE,   // SrvReadConsole,
+    FALSE,   // SrvWriteConsole,
+    FALSE,   // SrvDuplicateHandle,
+    // FALSE,   // SrvGetHandleInformation,
+    // FALSE,   // SrvSetHandleInformation,
+    FALSE,   // SrvCloseHandle,
+    FALSE,   // SrvVerifyConsoleIoHandle,
+    FALSE,   // SrvAllocConsole,
+    FALSE,   // SrvFreeConsole,
+    FALSE,   // SrvGetConsoleTitle,
+    FALSE,   // SrvSetConsoleTitle,
+    FALSE,   // SrvCreateConsoleScreenBuffer,
+    // FALSE,   // SrvInvalidateBitMapRect,
+    // FALSE,   // SrvVDMConsoleOperation,
+    FALSE,   // SrvSetConsoleCursor,
+    // FALSE,   // SrvShowConsoleCursor,
+    // FALSE,   // SrvConsoleMenuControl,
+    // FALSE,   // SrvSetConsolePalette,
+    // FALSE,   // SrvSetConsoleDisplayMode,
+    // FALSE,   // SrvRegisterConsoleVDM,
+    FALSE,   // SrvGetConsoleHardwareState,
+    FALSE,   // SrvSetConsoleHardwareState,
+    // TRUE,    // SrvGetConsoleDisplayMode,
+    FALSE,   // SrvAddConsoleAlias,
+    FALSE,   // SrvGetConsoleAlias,
+    FALSE,   // SrvGetConsoleAliasesLength,
+    FALSE,   // SrvGetConsoleAliasExesLength,
+    FALSE,   // SrvGetConsoleAliases,
+    FALSE,   // SrvGetConsoleAliasExes,
+    FALSE,   // SrvExpungeConsoleCommandHistory,
+    FALSE,   // SrvSetConsoleNumberOfCommands,
+    FALSE,   // SrvGetConsoleCommandHistoryLength,
+    FALSE,   // SrvGetConsoleCommandHistory,
+    // FALSE,   // SrvSetConsoleCommandHistoryMode,
+    FALSE,   // SrvGetConsoleCP,
+    FALSE,   // SrvSetConsoleCP,
+    // FALSE,   // SrvSetConsoleKeyShortcuts,
+    // FALSE,   // SrvSetConsoleMenuClose,
+    // FALSE,   // SrvConsoleNotifyLastClose,
+    FALSE,   // SrvGenerateConsoleCtrlEvent,
+    // FALSE,   // SrvGetConsoleKeyboardLayoutName,
+    FALSE,   // SrvGetConsoleWindow,
+    // FALSE,   // SrvGetConsoleCharType,
+    // FALSE,   // SrvSetConsoleLocalEUDC,
+    // FALSE,   // SrvSetConsoleCursorMode,
+    // FALSE,   // SrvGetConsoleCursorMode,
+    // FALSE,   // SrvRegisterConsoleOS2,
+    // FALSE,   // SrvSetConsoleOS2OemFormat,
+    // FALSE,   // SrvGetConsoleNlsMode,
+    // FALSE,   // SrvSetConsoleNlsMode,
+    // FALSE,   // SrvRegisterConsoleIME,
+    // FALSE,   // SrvUnregisterConsoleIME,
+    // FALSE,   // SrvGetConsoleLangId,
+    // FALSE,   // SrvAttachConsole,
+    FALSE,   // SrvGetConsoleSelectionInfo,
+    FALSE,   // SrvGetConsoleProcessList,
+    FALSE,   // SrvGetConsoleHistory,
+    FALSE,   // SrvSetConsoleHistory
+
+    // FALSE
+};
+
+PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber] =
+{
+    // "OpenConsole",
+    "GetConsoleInput",
+    "WriteConsoleInput",
+    "ReadConsoleOutput",
+    "WriteConsoleOutput",
+    // "ReadConsoleOutputString",
+    // "WriteConsoleOutputString",
+    // "FillConsoleOutput",
+    "GetConsoleMode",
+    // "GetConsoleNumberOfFonts",
+    "GetConsoleNumberOfInputEvents",
+    "GetConsoleScreenBufferInfo",
+    "GetConsoleCursorInfo",
+    // "GetConsoleMouseInfo",
+    // "GetConsoleFontInfo",
+    // "GetConsoleFontSize",
+    // "GetConsoleCurrentFont",
+    "SetConsoleMode",
+    "SetConsoleActiveScreenBuffer",
+    "FlushConsoleInputBuffer",
+    // "GetLargestConsoleWindowSize",
+    "SetConsoleScreenBufferSize",
+    // "SetConsoleCursorPosition",
+    "SetConsoleCursorInfo",
+    // "SetConsoleWindowInfo",
+    "ScrollConsoleScreenBuffer",
+    // "SetConsoleTextAttribute",
+    // "SetConsoleFont",
+    "SetConsoleIcon",
+    "ReadConsole",
+    "WriteConsole",
+    "DuplicateHandle",
+    // "GetHandleInformation",
+    // "SetHandleInformation",
+    "CloseHandle",
+    "VerifyConsoleIoHandle",
+    "AllocConsole",
+    "FreeConsole",
+    "GetConsoleTitle",
+    "SetConsoleTitle",
+    "CreateConsoleScreenBuffer",
+    // "InvalidateBitMapRect",
+    // "VDMConsoleOperation",
+    "SetConsoleCursor",
+    // "ShowConsoleCursor",
+    // "ConsoleMenuControl",
+    // "SetConsolePalette",
+    // "SetConsoleDisplayMode",
+    // "RegisterConsoleVDM",
+    "GetConsoleHardwareState",
+    "SetConsoleHardwareState",
+    // "GetConsoleDisplayMode",
+    "AddConsoleAlias",
+    "GetConsoleAlias",
+    "GetConsoleAliasesLength",
+    "GetConsoleAliasExesLength",
+    "GetConsoleAliases",
+    "GetConsoleAliasExes",
+    "ExpungeConsoleCommandHistory",
+    "SetConsoleNumberOfCommands",
+    "GetConsoleCommandHistoryLength",
+    "GetConsoleCommandHistory",
+    // "SetConsoleCommandHistoryMode",
+    "GetConsoleCP",
+    "SetConsoleCP",
+    // "SetConsoleKeyShortcuts",
+    // "SetConsoleMenuClose",
+    // "ConsoleNotifyLastClose",
+    "GenerateConsoleCtrlEvent",
+    // "GetConsoleKeyboardLayoutName",
+    "GetConsoleWindow",
+    // "GetConsoleCharType",
+    // "SetConsoleLocalEUDC",
+    // "SetConsoleCursorMode",
+    // "GetConsoleCursorMode",
+    // "RegisterConsoleOS2",
+    // "SetConsoleOS2OemFormat",
+    // "GetConsoleNlsMode",
+    // "SetConsoleNlsMode",
+    // "RegisterConsoleIME",
+    // "UnregisterConsoleIME",
+    // "GetConsoleLangId",
+    // "AttachConsole",
+    "GetConsoleSelectionInfo",
+    "GetConsoleProcessList",
+    "GetConsoleHistory",
+    "SetConsoleHistory"
+
+    // NULL
+};
+
+
+/* FUNCTIONS ******************************************************************/
+
+/*
+VOID WINAPI ConsoleStaticServerThread(PVOID x)
+{
+    // NTSTATUS Status = STATUS_SUCCESS;
+    PPORT_MESSAGE Request = (PPORT_MESSAGE)x;
+    PPORT_MESSAGE Reply = NULL;
+    ULONG MessageType = 0;
+
+    DPRINT("BASESRV: %s called\n", __FUNCTION__);
+
+    MessageType = Request->u2.s2.Type;
+    DPRINT("BASESRV: %s received a message (Type=%d)\n",
+           __FUNCTION__, MessageType);
+    switch (MessageType)
+    {
+        default:
+            Reply = Request;
+            /\* Status = *\/ NtReplyPort(BaseApiPort, Reply);
+            break;
+    }
+}
+*/
+
+CSR_SERVER_DLL_INIT(ConServerDllInitialization)
+{
+    // NTSTATUS Status = STATUS_SUCCESS;
+
+/*
+    DPRINT("BASSRV: %s(%ld,...) called\n", __FUNCTION__, ArgumentCount);
+
+    BaseApiPort = CsrQueryApiPort ();
+    Status = CsrAddStaticServerThread(ConsoleStaticServerThread);
+    if (NT_SUCCESS(Status))
+    {
+        //TODO initialize the BASE server
+    }
+    return STATUS_SUCCESS;
+*/
+
+    /* Initialize memory */
+    ConSrvHeap = RtlGetProcessHeap();  // Initialize our own heap.
+    // BaseSrvSharedHeap = LoadedServerDll->SharedSection; // Get the CSR shared heap.
+    // LoadedServerDll->SharedSection = BaseStaticServerData;
+
+    CsrInitConsoleSupport();
+
+    /* Setup the DLL Object */
+    LoadedServerDll->ApiBase = CONSRV_FIRST_API_NUMBER;
+    LoadedServerDll->HighestApiSupported = ConsolepMaxApiNumber;
+    LoadedServerDll->DispatchTable = ConsoleServerApiDispatchTable;
+    LoadedServerDll->ValidTable = ConsoleServerApiServerValidTable;
+    LoadedServerDll->NameTable = ConsoleServerApiNameTable;
+    LoadedServerDll->SizeOfProcessData = 0;
+    LoadedServerDll->ConnectCallback = NULL;
+    LoadedServerDll->DisconnectCallback = Win32CsrReleaseConsole;
+    LoadedServerDll->NewProcessCallback = Win32CsrDuplicateHandleTable;
+    // LoadedServerDll->HardErrorCallback = Win32CsrHardError;
+
+    /* All done */
+    return STATUS_SUCCESS;
+}
+
+BOOL
+NTAPI
+DllMain(IN HANDLE hDll,
+        IN DWORD dwReason,
+        IN LPVOID lpReserved)
+{
+    UNREFERENCED_PARAMETER(dwReason);
+    UNREFERENCED_PARAMETER(lpReserved);
+
+    if (DLL_PROCESS_ATTACH == dwReason)
+    {
+        DllHandle = hDll;
+    }
+
+    return TRUE;
+}
+
+/* EOF */
diff --git a/win32ss/user/consrv/lang/bg-BG.rc b/win32ss/user/consrv/lang/bg-BG.rc
new file mode 100644 (file)
index 0000000..54fc12a
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * PROJECT:         ReactOS CSRSS subsystem
+ * FILE:            subsystems/win32/csrss/win32csr/lang/bg-BG.rc
+ * PURPOSE:         Bulgarian resource file
+ */
+
+LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Îáðàáîòêà"
+  IDS_MARK "Îòáåëÿçâàíå"
+  IDS_COPY "Çàïîìíÿíå\tEnter"
+  IDS_PASTE "Ïîñòàâÿíå"
+  IDS_SELECTALL "Èçáîð íà âñè÷êî"
+  IDS_SCROLL "Ïðåëèñòâàíå"
+  IDS_FIND "Òúðñåíå..."
+  IDS_DEFAULTS "Ïîäðàçáèðàíè"
+  IDS_PROPERTIES "Ñâîéñòâà"
+  IDS_SCROLLHERE "Ïðåëèñòâàíå òóê"
+  IDS_SCROLLTOP "Ïðåëèñòâàíå äî ãîðå"
+  IDS_SCROLLBOTTOM "Ïðåëèñòâàíå äî äîëó"
+  IDS_SCROLLPAGE_UP "Ãîðíà ñòðàíèöà"
+  IDS_SCROLLPAGE_DOWN "Äîëíà ñòðàíèöà"
+  IDS_SCROLLUP "Ïðåëèñòâàíå íàãîðå"
+  IDS_SCROLLDOWN "Ïðåëèñòâàíå íàäîëó"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/cs-CZ.rc b/win32ss/user/consrv/lang/cs-CZ.rc
new file mode 100644 (file)
index 0000000..737972c
--- /dev/null
@@ -0,0 +1,28 @@
+/* FILE:        subsystems/win32/csrss/win32csr/lang/cs-CZ.rc
+ * TRANSLATOR:  Radek Liska aka Black_Fox (radekliska at gmail dot com)
+ * UPDATED:     2011-04-09
+ */
+
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Upravit"
+  IDS_MARK "Oznaèit"
+  IDS_COPY "Kopírovat\tEnter"
+  IDS_PASTE "Vlo\9eit"
+  IDS_SELECTALL "Oznaèit v\9ae"
+  IDS_SCROLL "Posunout"
+  IDS_FIND "Najít..."
+  IDS_DEFAULTS "Výchozí"
+  IDS_PROPERTIES "Vlastnosti"
+  IDS_SCROLLHERE "Posunout sem"
+  IDS_SCROLLTOP "Posunout na zaèátek"
+  IDS_SCROLLBOTTOM "Posunout na konec"
+  IDS_SCROLLPAGE_UP "O stránku vý\9ae"
+  IDS_SCROLLPAGE_DOWN "O stránku ní\9ee"
+  IDS_SCROLLUP "Posunout nahoru"
+  IDS_SCROLLDOWN "Posunout dolù"
+
+  IDS_COMMAND_PROMPT "Pøíkazový øádek"
+END
diff --git a/win32ss/user/consrv/lang/de-DE.rc b/win32ss/user/consrv/lang/de-DE.rc
new file mode 100644 (file)
index 0000000..43f28b4
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Bearbeiten"
+  IDS_MARK "Markieren"
+  IDS_COPY "Kopieren\tEnter"
+  IDS_PASTE "Einfügen"
+  IDS_SELECTALL "Alles auswählen"
+  IDS_SCROLL "Scrollen"
+  IDS_FIND "Suchen..."
+  IDS_DEFAULTS "Standardwerte"
+  IDS_PROPERTIES "Eigenschaften"
+  IDS_SCROLLHERE "Hier scrollen"
+  IDS_SCROLLTOP "Ganz nach oben scrollen"
+  IDS_SCROLLBOTTOM "Ganz nach unten scrollen"
+  IDS_SCROLLPAGE_UP "Seite nach oben"
+  IDS_SCROLLPAGE_DOWN "Seite nach unten"
+  IDS_SCROLLUP "Nach oben scrollen"
+  IDS_SCROLLDOWN "Nach unten scrollen"
+
+  IDS_COMMAND_PROMPT "Eingabeaufforderung"
+END
diff --git a/win32ss/user/consrv/lang/el-GR.rc b/win32ss/user/consrv/lang/el-GR.rc
new file mode 100644 (file)
index 0000000..6fd3141
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Åðåîåñãáóßá"
+  IDS_MARK "ÌáñêÜñéóìá"
+  IDS_COPY "ÁíôéãñáöÞ\tEnter"
+  IDS_PASTE "Åðéêüëëçóç"
+  IDS_SELECTALL "ÅðéëïãÞ üëùí"
+  IDS_SCROLL "Êýëéóç"
+  IDS_FIND "Åýñåóç..."
+  IDS_DEFAULTS "ÐñïåðéëïãÞ"
+  IDS_PROPERTIES "Éäéüôçôåò"
+  IDS_SCROLLHERE "Êýëéóç åäþ"
+  IDS_SCROLLTOP "Áñ÷Þ"
+  IDS_SCROLLBOTTOM "ÔÝëïò"
+  IDS_SCROLLPAGE_UP "Ðñïçãïýìåíç óåëßäá"
+  IDS_SCROLLPAGE_DOWN "Åðüìåíç óåëßäá"
+  IDS_SCROLLUP "Êýëéóç ðÜíù"
+  IDS_SCROLLDOWN "Êýëéóç êÜôù"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/en-US.rc b/win32ss/user/consrv/lang/en-US.rc
new file mode 100644 (file)
index 0000000..e1db2cd
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Edit"
+  IDS_MARK "Mark"
+  IDS_COPY "Copy\tEnter"
+  IDS_PASTE "Paste"
+  IDS_SELECTALL "Select All"
+  IDS_SCROLL "Scroll"
+  IDS_FIND "Find..."
+  IDS_DEFAULTS "Defaults"
+  IDS_PROPERTIES "Properties"
+  IDS_SCROLLHERE "Scroll here"
+  IDS_SCROLLTOP "Scroll top"
+  IDS_SCROLLBOTTOM "Scroll bottom"
+  IDS_SCROLLPAGE_UP "Page up"
+  IDS_SCROLLPAGE_DOWN "Page down"
+  IDS_SCROLLUP "Scroll up"
+  IDS_SCROLLDOWN "Scroll down"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/es-ES.rc b/win32ss/user/consrv/lang/es-ES.rc
new file mode 100644 (file)
index 0000000..a403f49
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Spanish Language resource file
+ * Traducido por: Javier Remacha 2008-26-01
+ */
+
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Editar"
+  IDS_MARK "Marcar"
+  IDS_COPY "Copiar\tIntroducir"
+  IDS_PASTE "Pegar"
+  IDS_SELECTALL "Seleccionar Todo"
+  IDS_SCROLL "Desplazar"
+  IDS_FIND "Buscar..."
+  IDS_DEFAULTS "Por defecto"
+  IDS_PROPERTIES "Propiedades"
+  IDS_SCROLLHERE "Desplazar aquí"
+  IDS_SCROLLTOP "Desplazar hasta arriba"
+  IDS_SCROLLBOTTOM "Desplazar hasta abajo"
+  IDS_SCROLLPAGE_UP "Subir página"
+  IDS_SCROLLPAGE_DOWN "Bajar página"
+  IDS_SCROLLUP "Desplazar arriba"
+  IDS_SCROLLDOWN "Desplazar abajo"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/fr-FR.rc b/win32ss/user/consrv/lang/fr-FR.rc
new file mode 100644 (file)
index 0000000..c1dcf79
--- /dev/null
@@ -0,0 +1,25 @@
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+/* Fixme : Translation could be really improved, with context
+           La traduction pourrait réellement être améliorée grâce au contexte */
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Éditer"
+  IDS_MARK "Marquer"
+  IDS_COPY "Copier\tEntrée"
+  IDS_PASTE "Coller"
+  IDS_SELECTALL "Tout sélectionner"
+  IDS_SCROLL "Défiler"
+  IDS_FIND "Trouver..."
+  IDS_DEFAULTS "Défauts"
+  IDS_PROPERTIES "Propriétés"
+  IDS_SCROLLHERE "Défiler ici"
+  IDS_SCROLLTOP "Défiler tout en haut"
+  IDS_SCROLLBOTTOM "Défiler tout en bas"
+  IDS_SCROLLPAGE_UP "Page précédente"
+  IDS_SCROLLPAGE_DOWN "Page suivante"
+  IDS_SCROLLUP "Défiler en haut"
+  IDS_SCROLLDOWN "Défiler en bas"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/id-ID.rc b/win32ss/user/consrv/lang/id-ID.rc
new file mode 100644 (file)
index 0000000..2a3048d
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Edit"
+  IDS_MARK "Tandai"
+  IDS_COPY "Copy\tEnter"
+  IDS_PASTE "Paste"
+  IDS_SELECTALL "Pilih Semua"
+  IDS_SCROLL "Gulung"
+  IDS_FIND "Cari..."
+  IDS_DEFAULTS "Standar"
+  IDS_PROPERTIES "Properti"
+  IDS_SCROLLHERE "Gulung ke Sini"
+  IDS_SCROLLTOP "Gulung ke Atas"
+  IDS_SCROLLBOTTOM "Gulung ke Bawah"
+  IDS_SCROLLPAGE_UP "Halaman Naik"
+  IDS_SCROLLPAGE_DOWN "Halaman Turun"
+  IDS_SCROLLUP "Gulung Naik"
+  IDS_SCROLLDOWN "Gulung Turun"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/it-IT.rc b/win32ss/user/consrv/lang/it-IT.rc
new file mode 100644 (file)
index 0000000..2a10fb3
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+* PROJECT:     ReactOS Client/Server Runtime subsystem
+* LICENSE:     GPL - See COPYING in the top level directory
+* FILE:        subsystems/win32/csrss/win32csr/lang/it-IT.rc
+* PURPOSE:     Italian Translation of subsystems/win32/csrss/win32csr/lang/en-US.rc
+* PROGRAMMERS:
+*              Copyright (C) 2007 Daniele Forsi (dforsi at gmail.com) Italian Translation
+*/
+
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Modifica"
+  IDS_MARK "Seleziona"
+  IDS_COPY "Copia\tInvio"
+  IDS_PASTE "Incolla"
+  IDS_SELECTALL "Seleziona tutto"
+  IDS_SCROLL "Scorri"
+  IDS_FIND "Trova..."
+  IDS_DEFAULTS "Impostazioni predefinite"
+  IDS_PROPERTIES "Proprietà"
+  IDS_SCROLLHERE "Scorri qui"
+  IDS_SCROLLTOP "Scorri in cima"
+  IDS_SCROLLBOTTOM "Scorri in fondo"
+  IDS_SCROLLPAGE_UP "Pagina sù"
+  IDS_SCROLLPAGE_DOWN "Pagina giù"
+  IDS_SCROLLUP "Scorri sù"
+  IDS_SCROLLDOWN "Scorri giù"
+
+  IDS_COMMAND_PROMPT "Prompt dei commandi"
+END
diff --git a/win32ss/user/consrv/lang/ja-JP.rc b/win32ss/user/consrv/lang/ja-JP.rc
new file mode 100644 (file)
index 0000000..f56a494
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "\95Ò\8fW"
+  IDS_MARK "\94Í\88Í\8ew\92è"
+  IDS_COPY "\83R\83s\81[\tEnter"
+  IDS_PASTE "\93\\\82è\95t\82¯"
+  IDS_SELECTALL "\82·\82×\82Ä\91I\91ð"
+  IDS_SCROLL "\83X\83N\83\8d\81[\83\8b"
+  IDS_FIND "\8c\9f\8dõ..."
+  IDS_DEFAULTS "\8bK\92è\92l"
+  IDS_PROPERTIES "\83v\83\8d\83p\83e\83B"
+  IDS_SCROLLHERE "\82±\82±\82É\83X\83N\83\8d\81[\83\8b"
+  IDS_SCROLLTOP "\88ê\94Ô\8fã\82É\83X\83N\83\8d\81[\83\8b"
+  IDS_SCROLLBOTTOM "\88ê\94Ô\89º\82É\83X\83N\83\8d\81[\83\8b"
+  IDS_SCROLLPAGE_UP "Page up"
+  IDS_SCROLLPAGE_DOWN "Page down"
+  IDS_SCROLLUP "\8fã\82É\83X\83N\83\8d\81[\83\8b"
+  IDS_SCROLLDOWN "\89º\82É\83X\83N\83\8d\81[\83\8b"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/no-NO.rc b/win32ss/user/consrv/lang/no-NO.rc
new file mode 100644 (file)
index 0000000..2a92722
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Rediger"
+  IDS_MARK "Merk"
+  IDS_COPY "Kopier\tEnter"
+  IDS_PASTE "Lim inn"
+  IDS_SELECTALL "Velg alt"
+  IDS_SCROLL "Rull"
+  IDS_FIND "Finn..."
+  IDS_DEFAULTS "Standard"
+  IDS_PROPERTIES "Egenskaper"
+  IDS_SCROLLHERE "Rull her"
+  IDS_SCROLLTOP "Rull til toppen"
+  IDS_SCROLLBOTTOM "Rull knapp"
+  IDS_SCROLLPAGE_UP "Side opp"
+  IDS_SCROLLPAGE_DOWN "Side ned"
+  IDS_SCROLLUP "Rull opp"
+  IDS_SCROLLDOWN "Rull ned"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/pl-PL.rc b/win32ss/user/consrv/lang/pl-PL.rc
new file mode 100644 (file)
index 0000000..3f368bc
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ *         translated by xrogers
+ *         xxrogers@users.sourceforge.net
+ *         https://sourceforge.net/projects/reactospl
+ *         translation update by Olaf Siejka (Caemyr), Apr 2011
+ *         UTF-8 conversion by Caemyr (May, 2011)
+ */
+
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Edytuj"
+  IDS_MARK "Zaznacz"
+  IDS_COPY "Kopiuj\tWejdź"
+  IDS_PASTE "Wklej"
+  IDS_SELECTALL "Zaznacz wszystko"
+  IDS_SCROLL "Przewiń"
+  IDS_FIND "Znajdź..."
+  IDS_DEFAULTS "Ustawienia domyślne"
+  IDS_PROPERTIES "Właściwości"
+  IDS_SCROLLHERE "Przewiń tutaj"
+  IDS_SCROLLTOP "Przewiń na początek"
+  IDS_SCROLLBOTTOM "Przewiń na koniec"
+  IDS_SCROLLPAGE_UP "Poprzednia strona"
+  IDS_SCROLLPAGE_DOWN "Następna strona"
+  IDS_SCROLLUP "Przewiń do góry"
+  IDS_SCROLLDOWN "Przewiń na dół"
+
+  IDS_COMMAND_PROMPT "Wiersz polecenia"
+END
diff --git a/win32ss/user/consrv/lang/pt-BR.rc b/win32ss/user/consrv/lang/pt-BR.rc
new file mode 100644 (file)
index 0000000..91b956e
--- /dev/null
@@ -0,0 +1,25 @@
+/* Translation and UTF-8 Conversion by mkbu95 <mkbu95@gmail.com> (May, 2012) */
+
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Editar"
+  IDS_MARK "Marcar"
+  IDS_COPY "Copiar\tEnter"
+  IDS_PASTE "Colar"
+  IDS_SELECTALL "Selecionar Tudo"
+  IDS_SCROLL "Rolar"
+  IDS_FIND "Procurar..."
+  IDS_DEFAULTS "Padrões"
+  IDS_PROPERTIES "Propriedades"
+  IDS_SCROLLHERE "Rolar aqui"
+  IDS_SCROLLTOP "Rolar até o topo"
+  IDS_SCROLLBOTTOM "Rolar até o fim"
+  IDS_SCROLLPAGE_UP "Page up"
+  IDS_SCROLLPAGE_DOWN "Page down"
+  IDS_SCROLLUP "Scroll up"
+  IDS_SCROLLDOWN "Scroll down"
+
+  IDS_COMMAND_PROMPT "Prompt de Comando"
+END
diff --git a/win32ss/user/consrv/lang/ro-RO.rc b/win32ss/user/consrv/lang/ro-RO.rc
new file mode 100644 (file)
index 0000000..570a857
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * FILE:             subsystems/win32/csrss/win32csr/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
+ */
+
+LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT             "Editare"
+  IDS_MARK             "Marchează"
+  IDS_COPY             "Copiază\tEnter"
+  IDS_PASTE            "Lipește"
+  IDS_SELECTALL        "Selectează tot"
+  IDS_SCROLL           "Derulează"
+  IDS_FIND             "Găsire…"
+  IDS_DEFAULTS         "Implicite"
+  IDS_PROPERTIES       "Proprietăți"
+  IDS_SCROLLHERE       "Derulează aici"
+  IDS_SCROLLTOP        "Derulează la început"
+  IDS_SCROLLBOTTOM     "Derulează la sfârșit"
+  IDS_SCROLLPAGE_UP    "Pagina anterioară"
+  IDS_SCROLLPAGE_DOWN  "Pagina următoare"
+  IDS_SCROLLUP         "Derulează în sus"
+  IDS_SCROLLDOWN       "Derulează în jos"
+
+  IDS_COMMAND_PROMPT   "Linie de comandă"
+END
diff --git a/win32ss/user/consrv/lang/ru-RU.rc b/win32ss/user/consrv/lang/ru-RU.rc
new file mode 100644 (file)
index 0000000..aff38f2
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Изменить"
+  IDS_MARK "Пометить"
+  IDS_COPY "Копировать\tEnter"
+  IDS_PASTE "Вставить"
+  IDS_SELECTALL "Выделить все"
+  IDS_SCROLL "Прокрутить"
+  IDS_FIND "Искать..."
+  IDS_DEFAULTS "Умолчания"
+  IDS_PROPERTIES "Свойства"
+  IDS_SCROLLHERE "Scroll Here"
+  IDS_SCROLLTOP "Scroll Top"
+  IDS_SCROLLBOTTOM "Прокрутить вниз"
+  IDS_SCROLLPAGE_UP "Вверх страницы"
+  IDS_SCROLLPAGE_DOWN "Вниз страницы"
+  IDS_SCROLLUP "Прокрутить вверх"
+  IDS_SCROLLDOWN "Scroll Down"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/sk-SK.rc b/win32ss/user/consrv/lang/sk-SK.rc
new file mode 100644 (file)
index 0000000..984aa21
--- /dev/null
@@ -0,0 +1,28 @@
+/* TRANSLATOR:  Mário Kaèmár /Mario Kacmar/ aka Kario (kario@szm.sk)
+ * DATE OF TR:  29-05-2008
+ * LastChange:  12-04-2011
+ */
+
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Upravi\9d"
+  IDS_MARK "Oznaèi\9d"
+  IDS_COPY "Kopírova\9d\tEnter"
+  IDS_PASTE "Vlo\9ei\9d"
+  IDS_SELECTALL "Vybra\9d v\9aetko"
+  IDS_SCROLL "Rolova\9d"
+  IDS_FIND "Nájs\9d..." //Find
+  IDS_DEFAULTS "Predvolené" //Defaults
+  IDS_PROPERTIES "Vlastnosti"
+  IDS_SCROLLHERE "Rolova\9d sem"
+  IDS_SCROLLTOP "K hornému okraju"
+  IDS_SCROLLBOTTOM "K dolnému okraju"
+  IDS_SCROLLPAGE_UP "O stránku vy\9a\9aie"
+  IDS_SCROLLPAGE_DOWN "O stránku ni\9e\9aie"
+  IDS_SCROLLUP "Rolova\9d nahor"
+  IDS_SCROLLDOWN "Rolova\9d nadol"
+
+  IDS_COMMAND_PROMPT "Príkazový riadok"
+END
diff --git a/win32ss/user/consrv/lang/sv-SE.rc b/win32ss/user/consrv/lang/sv-SE.rc
new file mode 100644 (file)
index 0000000..7be173e
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * PROJECT:         ReactOS CSRSS subsystem
+ * FILE:            subsystems/win32/csrss/win32csr/lang/sv-SE.rc
+ * PURPOSE:         Swedish resource file
+ * Translation:      Jaix Bly
+ */
+
+LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Redigera"
+  IDS_MARK "Markera"
+  IDS_COPY "Kopiera\tEnter"
+  IDS_PASTE "Klistra in"
+  IDS_SELECTALL "Markera Allt"
+  IDS_SCROLL "Skrolla"
+  IDS_FIND "Sök..."
+  IDS_DEFAULTS "Ursprunglig"
+  IDS_PROPERTIES "Egenskaper"
+  IDS_SCROLLHERE "Skrolla hit"
+  IDS_SCROLLTOP "Skrolla till topp"
+  IDS_SCROLLBOTTOM "Skrolla till botten"
+  IDS_SCROLLPAGE_UP "Sida upp"
+  IDS_SCROLLPAGE_DOWN "Sida ner"
+  IDS_SCROLLUP "Skrolla upp"
+  IDS_SCROLLDOWN "Skrolla ner"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/tr-TR.rc b/win32ss/user/consrv/lang/tr-TR.rc
new file mode 100644 (file)
index 0000000..d50aa96
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  Turkish resources
+ *
+ *  Copyright 2012 Arda Tanrikulu <ardatanrikulu@gmail.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License along
+ *  with this program; if not, write to the Free Software Foundation, Inc.,
+ *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Düzenle"
+  IDS_MARK "İşaretle"
+  IDS_COPY "Kopyala\tEnter"
+  IDS_PASTE "Yapıştır"
+  IDS_SELECTALL "Tümünü Seç"
+  IDS_SCROLL "Yuvarla"
+  IDS_FIND "Bul..."
+  IDS_DEFAULTS "Varsayılanlar"
+  IDS_PROPERTIES "Özellikler"
+  IDS_SCROLLHERE "Buraya yuvarla"
+  IDS_SCROLLTOP "Üste yuvarla"
+  IDS_SCROLLBOTTOM "Alta yuvarla"
+  IDS_SCROLLPAGE_UP "Sayfa yukarı"
+  IDS_SCROLLPAGE_DOWN "Sayfa aşağı"
+  IDS_SCROLLUP "Yukarı yuvarla"
+  IDS_SCROLLDOWN "Aşağı yuvarla"
+
+  IDS_COMMAND_PROMPT "Komut İstemi"
+END
diff --git a/win32ss/user/consrv/lang/uk-UA.rc b/win32ss/user/consrv/lang/uk-UA.rc
new file mode 100644 (file)
index 0000000..b7727f8
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * PROJECT:         ReactOS CSRSS subsystem
+ * LICENSE:         GPL - See COPYING in the top level directory
+ * FILE:            subsystems/win32/csrss/win32csr/lang/uk-UA.rc
+ * PURPOSE:         Ukraianian resource file
+ * TRANSLATOR:      Artem Reznikov
+ */
+
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "Редагувати"
+  IDS_MARK "Виділити"
+  IDS_COPY "Копіювати\tEnter"
+  IDS_PASTE "Вставити"
+  IDS_SELECTALL "Виділити все"
+  IDS_SCROLL "Прокрутити"
+  IDS_FIND "Знайти..."
+  IDS_DEFAULTS "Замовчування"
+  IDS_PROPERTIES "Властивості"
+  IDS_SCROLLHERE "Прокрутити сюди"
+  IDS_SCROLLTOP "Прокрутити на початок"
+  IDS_SCROLLBOTTOM "Прокрутити на кінець"
+  IDS_SCROLLPAGE_UP "Попередня сотрінка"
+  IDS_SCROLLPAGE_DOWN "Наступна сторінка"
+  IDS_SCROLLUP "Прокрутити догори"
+  IDS_SCROLLDOWN "Прокрутити донизу"
+
+  IDS_COMMAND_PROMPT "Командний рядок"
+END
diff --git a/win32ss/user/consrv/lang/zh-CN.rc b/win32ss/user/consrv/lang/zh-CN.rc
new file mode 100644 (file)
index 0000000..2dd7cfa
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "±à¼­"
+  IDS_MARK "±ê¼Ç"
+  IDS_COPY "¸´ÖÆ\tEnter"
+  IDS_PASTE "ð¤Ìù"
+  IDS_SELECTALL "È«²¿Ñ¡Ôñ"
+  IDS_SCROLL "¹ö¶¯"
+  IDS_FIND "²éÕÒ..."
+  IDS_DEFAULTS "ĬÈÏ"
+  IDS_PROPERTIES "ÊôÐÔ"
+  IDS_SCROLLHERE "¹ö¶¯µ½´Ë"
+  IDS_SCROLLTOP "¹ö¶¯ÖÁ¶¥¶Ë"
+  IDS_SCROLLBOTTOM "¹ö¶¯ÖÁÄ©¶Ë"
+  IDS_SCROLLPAGE_UP "ÉÏÒ»Ò³"
+  IDS_SCROLLPAGE_DOWN "ÏÂÒ»Ò³"
+  IDS_SCROLLUP "ÏòÉϹö¶¯"
+  IDS_SCROLLDOWN "ÏòϹö¶¯"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
diff --git a/win32ss/user/consrv/lang/zh-TW.rc b/win32ss/user/consrv/lang/zh-TW.rc
new file mode 100644 (file)
index 0000000..d9ad0e7
--- /dev/null
@@ -0,0 +1,23 @@
+LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
+
+STRINGTABLE
+BEGIN
+  IDS_EDIT "½s¿è"
+  IDS_MARK "¼Ð°O"
+  IDS_COPY "½Æ»s\tEnter"
+  IDS_PASTE "ÂH¶K"
+  IDS_SELECTALL "¥þ³¡¿ï¾Ü"
+  IDS_SCROLL "ºu°Ê"
+  IDS_FIND "´M§ä..."
+  IDS_DEFAULTS "¹w³]"
+  IDS_PROPERTIES "ÄÝ©Ê"
+  IDS_SCROLLHERE "ºu°Ê¨ì¦¹ "
+  IDS_SCROLLTOP "ºu°Ê¨ì³»¸m"
+  IDS_SCROLLBOTTOM "ºu°Ê¨ì¥½ºÝ"
+  IDS_SCROLLPAGE_UP "¤W¤@­¶"
+  IDS_SCROLLPAGE_DOWN "¤U¤@­¶"
+  IDS_SCROLLUP "¦V¤Wºu°Ê"
+  IDS_SCROLLDOWN "¦V¤Uºu°Ê"
+
+  IDS_COMMAND_PROMPT "Command Prompt"
+END
similarity index 96%
rename from win32ss/user/win32csr/lineinput.c
rename to win32ss/user/consrv/lineinput.c
index 1d55fb5..22b0792 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * PROJECT:         ReactOS CSRSS
  * LICENSE:         GPL - See COPYING in the top level directory
- * FILE:            subsystems/win32/csrss/win32csr/lineinput.c
+ * FILE:            win32ss/user/consrv/lineinput.c
  * PURPOSE:         Console line input functions
  * PROGRAMMERS:     Jeffrey Morlan
  */
@@ -40,15 +40,15 @@ HistoryCurrentBuffer(PCSRSS_CONSOLE Console)
     }
 
     /* Couldn't find the buffer, create a new one */
-    Hist = HeapAlloc(Win32CsrApiHeap, 0, sizeof(HISTORY_BUFFER) + ExeName.Length);
+    Hist = HeapAlloc(ConSrvHeap, 0, sizeof(HISTORY_BUFFER) + ExeName.Length);
     if (!Hist)
         return NULL;
     Hist->MaxEntries = Console->HistoryBufferSize;
     Hist->NumEntries = 0;
-    Hist->Entries = HeapAlloc(Win32CsrApiHeap, 0, Hist->MaxEntries * sizeof(UNICODE_STRING));
+    Hist->Entries = HeapAlloc(ConSrvHeap, 0, Hist->MaxEntries * sizeof(UNICODE_STRING));
     if (!Hist->Entries)
     {
-        HeapFree(Win32CsrApiHeap, 0, Hist);
+        HeapFree(ConSrvHeap, 0, Hist);
         return NULL;
     }
     Hist->ExeName.Length = Hist->ExeName.MaximumLength = ExeName.Length;
@@ -142,12 +142,12 @@ HistoryDeleteBuffer(PHISTORY_BUFFER Hist)
         return;
     while (Hist->NumEntries != 0)
         RtlFreeUnicodeString(&Hist->Entries[--Hist->NumEntries]);
-    HeapFree(Win32CsrApiHeap, 0, Hist->Entries);
+    HeapFree(ConSrvHeap, 0, Hist->Entries);
     RemoveEntryList(&Hist->ListEntry);
-    HeapFree(Win32CsrApiHeap, 0, Hist);
+    HeapFree(ConSrvHeap, 0, Hist);
 }
 
-CSR_API(CsrGetCommandHistoryLength)
+CSR_API(SrvGetConsoleCommandHistoryLength)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
@@ -178,7 +178,7 @@ CSR_API(CsrGetCommandHistoryLength)
     return Status;
 }
 
-CSR_API(CsrGetCommandHistory)
+CSR_API(SrvGetConsoleCommandHistory)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
@@ -221,7 +221,7 @@ CSR_API(CsrGetCommandHistory)
     return Status;
 }
 
-CSR_API(CsrExpungeCommandHistory)
+CSR_API(SrvExpungeConsoleCommandHistory)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
@@ -245,7 +245,7 @@ CSR_API(CsrExpungeCommandHistory)
     return Status;
 }
 
-CSR_API(CsrSetHistoryNumberCommands)
+CSR_API(SrvSetConsoleNumberOfCommands)
 {
     PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
     PCSRSS_CONSOLE Console;
@@ -268,7 +268,7 @@ CSR_API(CsrSetHistoryNumberCommands)
         if (Hist)
         {
             OldEntryList = Hist->Entries;
-            NewEntryList = HeapAlloc(Win32CsrApiHeap, 0,
+            NewEntryList = HeapAlloc(ConSrvHeap, 0,
                                      MaxEntries * sizeof(UNICODE_STRING));
             if (!NewEntryList)
             {
@@ -286,7 +286,7 @@ CSR_API(CsrSetHistoryNumberCommands)
                 Hist->MaxEntries = MaxEntries;
                 Hist->Entries = memcpy(NewEntryList, Hist->Entries,
                                        Hist->NumEntries * sizeof(UNICODE_STRING));
-                HeapFree(Win32CsrApiHeap, 0, OldEntryList);
+                HeapFree(ConSrvHeap, 0, OldEntryList);
             }
         }
         ConioUnlockConsole(Console);
@@ -294,7 +294,7 @@ CSR_API(CsrSetHistoryNumberCommands)
     return Status;
 }
 
-CSR_API(CsrGetHistoryInfo)
+CSR_API(SrvGetConsoleHistory)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
@@ -308,7 +308,7 @@ CSR_API(CsrGetHistoryInfo)
     return Status;
 }
 
-CSR_API(CsrSetHistoryInfo)
+CSR_API(SrvSetConsoleHistory)
 {
     PCSRSS_CONSOLE Console;
     NTSTATUS Status = ConioConsoleFromProcessData(CsrGetClientThread()->Process, &Console);
diff --git a/win32ss/user/consrv/rsrc.rc b/win32ss/user/consrv/rsrc.rc
new file mode 100644 (file)
index 0000000..13d5651
--- /dev/null
@@ -0,0 +1,31 @@
+#include <windows.h>
+#include "resource.h"
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+1   ICON    DISCARDABLE     res/terminal.ico
+
+#include "lang/bg-BG.rc"
+#include "lang/cs-CZ.rc"
+#include "lang/de-DE.rc"
+#include "lang/el-GR.rc"
+#include "lang/en-US.rc"
+#include "lang/es-ES.rc"
+#include "lang/fr-FR.rc"
+#include "lang/id-ID.rc"
+#include "lang/it-IT.rc"
+#include "lang/ja-JP.rc"
+#include "lang/no-NO.rc"
+#include "lang/sk-SK.rc"
+#include "lang/sv-SE.rc"
+#include "lang/zh-CN.rc"
+#include "lang/zh-TW.rc"
+
+// UTF-8
+#pragma code_page(65001)
+#include "lang/pl-PL.rc"
+#include "lang/pt-BR.rc"
+#include "lang/ro-RO.rc"
+#include "lang/ru-RU.rc"
+#include "lang/uk-UA.rc"
+#include "lang/tr-TR.rc"
diff --git a/win32ss/user/consrv/server.c b/win32ss/user/consrv/server.c
new file mode 100644 (file)
index 0000000..21f5a20
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Console Server DLL
+ * FILE:            win32ss/user/consrv/init.c
+ * PURPOSE:         Initialization
+ * PROGRAMMERS:     Hermes Belusca-Maito (hermes.belusca@sfr.fr)
+ */
+
+#include "consrv.h"
+
+#define NDEBUG
+#include <debug.h>
+
+
+/* Ensure that a captured buffer is safe to access */
+BOOL FASTCALL
+Win32CsrValidateBuffer(PCSR_PROCESS ProcessData, PVOID Buffer,
+                       SIZE_T NumElements, SIZE_T ElementSize)
+{
+    /* Check that the following conditions are true:
+     * 1. The start of the buffer is somewhere within the process's
+     *    shared memory section view.
+     * 2. The remaining space in the view is at least as large as the buffer.
+     *    (NB: Please don't try to "optimize" this by using multiplication
+     *    instead of division; remember that 2147483648 * 2 = 0.)
+     * 3. The buffer is DWORD-aligned.
+     */
+    ULONG_PTR Offset = (BYTE *)Buffer - (BYTE *)ProcessData->ClientViewBase;
+    if (Offset >= ProcessData->ClientViewBounds
+            || NumElements > (ProcessData->ClientViewBounds - Offset) / ElementSize
+            || (Offset & (sizeof(DWORD) - 1)) != 0)
+    {
+        DPRINT1("Invalid buffer %p(%u*%u); section view is %p(%u)\n",
+                Buffer, NumElements, ElementSize,
+                ProcessData->ClientViewBase, ProcessData->ClientViewBounds);
+        return FALSE;
+    }
+    return TRUE;
+}
+
+/* EOF */
similarity index 97%
rename from win32ss/user/win32csr/tuiconsole.c
rename to win32ss/user/consrv/tuiconsole.c
index e767d48..a6252e3 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id$
+/* $Id: tuiconsole.c 47693 2010-06-08 06:38:14Z jmorlan $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
- * FILE:            subsys/csrss/win32csr/tuiconsole.c
+ * FILE:            win32ss/user/consrv/tuiconsole.c
  * PURPOSE:         Implementation of text-mode consoles
  */
 
@@ -161,7 +161,7 @@ TuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
 
     ConsoleDrawSize = sizeof(CONSOLE_DRAW) +
                       (ConioRectWidth(Region) * ConioRectHeight(Region)) * 2;
-    ConsoleDraw = HeapAlloc(Win32CsrApiHeap, 0, ConsoleDrawSize);
+    ConsoleDraw = HeapAlloc(ConSrvHeap, 0, ConsoleDrawSize);
     if (NULL == ConsoleDraw)
     {
         DPRINT1("HeapAlloc failed\n");
@@ -180,11 +180,11 @@ TuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
                           NULL, 0, ConsoleDraw, ConsoleDrawSize, &BytesReturned, NULL))
     {
         DPRINT1("Failed to draw console\n");
-        HeapFree(Win32CsrApiHeap, 0, ConsoleDraw);
+        HeapFree(ConSrvHeap, 0, ConsoleDraw);
         return;
     }
 
-    HeapFree(Win32CsrApiHeap, 0, ConsoleDraw);
+    HeapFree(ConSrvHeap, 0, ConsoleDraw);
 }
 
 static VOID WINAPI
@@ -437,7 +437,7 @@ TuiSwapConsole(int Next)
         SwapConsole = (0 < Next ? SwapConsole->Next : SwapConsole->Prev);
         Title.MaximumLength = RtlUnicodeStringToAnsiSize(&SwapConsole->Title);
         Title.Length = 0;
-        Buffer = HeapAlloc(Win32CsrApiHeap,
+        Buffer = HeapAlloc(ConSrvHeap,
                            0,
                            sizeof(COORD) + Title.MaximumLength);
         pos = (COORD *)Buffer;
@@ -454,7 +454,7 @@ TuiSwapConsole(int Next)
         {
             DPRINT1( "Error writing to console\n" );
         }
-        HeapFree(Win32CsrApiHeap, 0, Buffer);
+        HeapFree(ConSrvHeap, 0, Buffer);
         LeaveCriticalSection(&ActiveConsoleLock);
 
         return TRUE;
similarity index 76%
rename from win32ss/user/win32csr/tuiconsole.h
rename to win32ss/user/consrv/tuiconsole.h
index 9dac3e7..bcb7313 100644 (file)
@@ -1,8 +1,8 @@
-/* $Id$
+/* $Id: tuiconsole.h 21947 2006-05-20 10:49:56Z fireball $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
- * FILE:            subsys/csrss/win32csr/tuiconsole.h
+ * FILE:            win32ss/user/consrv/tuiconsole.h
  * PURPOSE:         Interface to text-mode consoles
  */
 
index 8983ada..778eab7 100644 (file)
@@ -1,29 +1,18 @@
 
 include_directories(
     BEFORE .
-    ${REACTOS_SOURCE_DIR}/subsystems/win32/csrss/include
+    ${REACTOS_SOURCE_DIR}/subsystems/win32/csrsrv/include
     ${REACTOS_SOURCE_DIR}/include/reactos/subsys
     ${REACTOS_SOURCE_DIR}/include/reactos/drivers
-    ${REACTOS_SOURCE_DIR}/dll/cpl/console
     ${REACTOS_SOURCE_DIR}/win32ss/include)
 
 spec2def(win32csr.dll win32csr.spec)
 
-set_rc_compiler()
-
 list(APPEND SOURCE
-    alias.c
-    coninput.c
-    conoutput.c
-    console.c
     desktopbg.c
     dllmain.c
     exitros.c
-    guiconsole.c
-    handle.c
     harderror.c
-    lineinput.c
-    tuiconsole.c
     win32csr.rc
     ${CMAKE_CURRENT_BINARY_DIR}/win32csr.def)
 
index 0235ac0..7168a11 100644 (file)
@@ -29,6 +29,9 @@
 #include "w32csr.h"
 #include <debug.h>
 
+/***
+ *** Move it into winsrv
+ ***/
 #define DESKTOP_WINDOW_ATOM 32769
 
 #define PM_SHOW_DESKTOP 1
index 737c2d1..a009490 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: desktopbg.h 47315 2010-05-23 00:51:29Z jmorlan $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
@@ -8,7 +8,8 @@
 
 #pragma once
 
-#include "api.h"
+#include <csr/csrsrv.h>
+//#include "api.h"
 
 /* Api functions */
 CSR_API(CsrCreateDesktop);
index ad5e25c..6e615da 100644 (file)
@@ -11,8 +11,6 @@
 #include "w32csr.h"
 #include <debug.h>
 
-/* Not defined in any header file */
-extern VOID WINAPI PrivateCsrssManualGuiCheck(LONG Check);
 
 /* GLOBALS *******************************************************************/
 
@@ -27,66 +25,27 @@ PCSR_API_ROUTINE Win32CsrApiDefinitions[] =
     CsrVerifyHandle,
     CsrDuplicateHandle,
     CsrGetInputWaitHandle,
-    CsrWriteConsole,
-    CsrReadConsole,
-    CsrAllocConsole,
-    CsrFreeConsole,
-    CsrGetScreenBufferInfo,
-    CsrSetCursor,
     CsrFillOutputChar,
     CsrReadInputEvent,
     CsrWriteConsoleOutputChar,
     CsrWriteConsoleOutputAttrib,
     CsrFillOutputAttrib,
-    CsrGetCursorInfo,
-    CsrSetCursorInfo,
     CsrSetTextAttrib,
-    CsrGetConsoleMode,
-    CsrSetConsoleMode,
-    CsrCreateScreenBuffer,
-    CsrSetScreenBuffer,
-    CsrSetTitle,
-    CsrGetTitle,
     CsrWriteConsoleOutput,
     CsrFlushInputBuffer,
-    CsrScrollConsoleScreenBuffer,
     CsrReadConsoleOutputChar,
     CsrReadConsoleOutputAttrib,
-    CsrGetNumberOfConsoleInputEvents,
     CsrExitReactos,
-    CsrPeekConsoleInput,
-    CsrReadConsoleOutput,
-    CsrWriteConsoleInput,
     CsrHardwareStateProperty,
-    CsrGetConsoleWindow,
     CsrCreateDesktop,
     CsrShowDesktop,
     CsrHideDesktop,
-    CsrSetConsoleIcon,
     CsrSetLogonNotifyWindow,
     CsrRegisterLogonProcess,
-    CsrGetConsoleCodePage,
-    CsrSetConsoleCodePage,
-    CsrGetConsoleOutputCodePage,
-    CsrSetConsoleOutputCodePage,
-    CsrGetProcessList,
-    CsrAddConsoleAlias,
-    CsrGetConsoleAlias,
-    CsrGetAllConsoleAliases,
-    CsrGetAllConsoleAliasesLength,
-    CsrGetConsoleAliasesExes,
-    CsrGetConsoleAliasesExesLength,
     CsrGenerateCtrlEvent,
-    CsrSetScreenBufferSize,
-    CsrGetConsoleSelectionInfo,
-    CsrGetCommandHistoryLength,
-    CsrGetCommandHistory,
-    CsrExpungeCommandHistory,
-    CsrSetHistoryNumberCommands,
-    CsrGetHistoryInfo,
-    CsrSetHistoryInfo
 };
 
+
 /*
 static CSRSS_API_DEFINITION Win32CsrApiDefinitions[] =
 {
@@ -335,32 +294,6 @@ DllMain(HANDLE hDll,
     return TRUE;
 }
 
-/* Ensure that a captured buffer is safe to access */
-BOOL FASTCALL
-Win32CsrValidateBuffer(PCSR_PROCESS ProcessData, PVOID Buffer,
-                       SIZE_T NumElements, SIZE_T ElementSize)
-{
-    /* Check that the following conditions are true:
-     * 1. The start of the buffer is somewhere within the process's
-     *    shared memory section view.
-     * 2. The remaining space in the view is at least as large as the buffer.
-     *    (NB: Please don't try to "optimize" this by using multiplication
-     *    instead of division; remember that 2147483648 * 2 = 0.)
-     * 3. The buffer is DWORD-aligned.
-     */
-    ULONG_PTR Offset = (BYTE *)Buffer - (BYTE *)ProcessData->ClientViewBase;
-    if (Offset >= ProcessData->ClientViewBounds
-            || NumElements > (ProcessData->ClientViewBounds - Offset) / ElementSize
-            || (Offset & (sizeof(DWORD) - 1)) != 0)
-    {
-        DPRINT1("Invalid buffer %p(%u*%u); section view is %p(%u)\n",
-                Buffer, NumElements, ElementSize,
-                ProcessData->ClientViewBase, ProcessData->ClientViewBounds);
-        return FALSE;
-    }
-    return TRUE;
-}
-
 NTSTATUS FASTCALL
 Win32CsrEnumProcesses(CSRSS_ENUM_PROCESS_PROC EnumProc,
                       PVOID Context)
@@ -397,11 +330,10 @@ CSR_SERVER_DLL_INIT(Win32CsrInitialization)
     NtUserInitialize(0, NULL, NULL);
 
     PrivateCsrssManualGuiCheck(0);
-    CsrInitConsoleSupport(); // Go into consrv.dll
 
     /* Setup the DLL Object */
-    LoadedServerDll->ApiBase = BASESRV_FIRST_API_NUMBER; // ApiNumberBase
-    LoadedServerDll->HighestApiSupported = BasepMaxApiNumber; // MaxApiNumber
+    LoadedServerDll->ApiBase = BASESRV_FIRST_API_NUMBER;
+    LoadedServerDll->HighestApiSupported = BasepMaxApiNumber;
     LoadedServerDll->DispatchTable = Win32CsrApiDefinitions;
     // LoadedServerDll->ValidTable = BaseServerApiServerValidTable;
     // LoadedServerDll->NameTable = BaseServerApiNameTable;
index 9fe92ce..bd04f01 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: exitros.c 57570 2012-10-17 23:10:40Z hbelusca $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS CSRSS subsystem
@@ -6,6 +6,11 @@
  * PURPOSE:         Logout/shutdown
  */
 
+
+/***
+ *** Move it into winsrv
+ ***/
+
 /* INCLUDES ******************************************************************/
 #define NDEBUG
 #include "w32csr.h"
index 1068821..4f505bc 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: resource.h 51293 2011-04-09 12:01:36Z mkupfer $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS Win32 subsystem
index 357a2c9..b0b6e51 100644 (file)
 #include <conio.h>
 #include <csrplugin.h>
 #include <desktopbg.h>
-#include "guiconsole.h"
-#include "tuiconsole.h"
 
 /* Public Win32K Headers */
 #include <ntuser.h>
 
 #include "resource.h"
 
-/* shared header with console.dll */
-#include "console.h"
-
 VOID
 WINAPI
 Win32CsrHardError(
index 5b4a68e..2f78f4f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: win32csr.h 55699 2012-02-19 06:44:09Z ion $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS system libraries
 extern HANDLE Win32CsrApiHeap;
 extern HINSTANCE Win32CsrDllHandle;
 
+
+
+/********** Move that to consrv ************/
+
 typedef struct Object_tt
 {
-  LONG Type;
-  struct tagCSRSS_CONSOLE *Console;
-  LONG AccessRead, AccessWrite;
-  LONG ExclusiveRead, ExclusiveWrite;
-  LONG HandleCount;
+    LONG Type;
+    struct tagCSRSS_CONSOLE *Console;
+    LONG AccessRead, AccessWrite;
+    LONG ExclusiveRead, ExclusiveWrite;
+    LONG HandleCount;
 } Object_t;
 
 typedef struct _CSRSS_HANDLE
 {
-  Object_t *Object;
-  DWORD Access;
-  BOOL Inheritable;
-  DWORD ShareMode;
+    Object_t *Object;
+    DWORD Access;
+    BOOL Inheritable;
+    DWORD ShareMode;
 } CSRSS_HANDLE, *PCSRSS_HANDLE;
 
-typedef VOID (WINAPI *CSR_CLEANUP_OBJECT_PROC)(Object_t *Object);
-
-typedef struct tagCSRSS_OBJECT_DEFINITION
-{
-  LONG Type;
-  CSR_CLEANUP_OBJECT_PROC CsrCleanupObjectProc;
-} CSRSS_OBJECT_DEFINITION, *PCSRSS_OBJECT_DEFINITION;
+BOOL FASTCALL Win32CsrValidateBuffer(PCSR_PROCESS ProcessData,
+                                     PVOID Buffer,
+                                     SIZE_T NumElements,
+                                     SIZE_T ElementSize);
 
 /* handle.c */
 NTSTATUS FASTCALL Win32CsrInsertObject(PCSR_PROCESS ProcessData,
@@ -52,9 +53,11 @@ NTSTATUS FASTCALL Win32CsrLockObject(PCSR_PROCESS ProcessData,
                                      DWORD Access,
                                      long Type);
 VOID FASTCALL Win32CsrUnlockObject(Object_t *Object);
+
 NTSTATUS FASTCALL Win32CsrReleaseObject(PCSR_PROCESS ProcessData,
                                         HANDLE Object);
 VOID WINAPI Win32CsrReleaseConsole(PCSR_PROCESS ProcessData);
+
 NTSTATUS WINAPI Win32CsrDuplicateHandleTable(PCSR_PROCESS SourceProcessData,
                                              PCSR_PROCESS TargetProcessData);
 CSR_API(CsrGetHandle);
@@ -63,10 +66,24 @@ CSR_API(CsrVerifyHandle);
 CSR_API(CsrDuplicateHandle);
 CSR_API(CsrGetInputWaitHandle);
 
-BOOL FASTCALL Win32CsrValidateBuffer(PCSR_PROCESS ProcessData,
-                                     PVOID Buffer,
-                                     SIZE_T NumElements,
-                                     SIZE_T ElementSize);
+/*******************************************/
+
+
+
+
+
+
+
+/*
+typedef VOID (WINAPI *CSR_CLEANUP_OBJECT_PROC)(Object_t *Object);
+
+typedef struct tagCSRSS_OBJECT_DEFINITION
+{
+  LONG Type;
+  CSR_CLEANUP_OBJECT_PROC CsrCleanupObjectProc;
+} CSRSS_OBJECT_DEFINITION, *PCSRSS_OBJECT_DEFINITION;
+*/
+
 NTSTATUS FASTCALL Win32CsrEnumProcesses(CSRSS_ENUM_PROCESS_PROC EnumProc,
                                         PVOID Context);
 
@@ -75,6 +92,4 @@ CSR_API(CsrExitReactos);
 CSR_API(CsrSetLogonNotifyWindow);
 CSR_API(CsrRegisterLogonProcess);
 
-CSR_API(CsrSoundSentry);
-
 /* EOF */