[CONSRV]: Stubplement the remaining APIs needed for Windows kernel32.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 30 Aug 2013 17:53:45 +0000 (17:53 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 30 Aug 2013 17:53:45 +0000 (17:53 +0000)
svn path=/trunk/; revision=59907

reactos/include/reactos/subsys/win/conmsg.h
reactos/win32ss/user/winsrv/consrv.cmake
reactos/win32ss/user/winsrv/consrv/api.h
reactos/win32ss/user/winsrv/consrv/console.c
reactos/win32ss/user/winsrv/consrv/frontendctl.c
reactos/win32ss/user/winsrv/consrv/handle.c
reactos/win32ss/user/winsrv/consrv/init.c
reactos/win32ss/user/winsrv/consrv/lineinput.c
reactos/win32ss/user/winsrv/consrv/subsysreg.c [new file with mode: 0644]

index c29934e..cf9d036 100644 (file)
@@ -16,7 +16,6 @@
 #define CONSRV_FIRST_API_NUMBER     512
 
 // Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
-// plus a little bit of Windows 7.
 typedef enum _CONSRV_API_NUMBER
 {
     ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
@@ -28,14 +27,14 @@ typedef enum _CONSRV_API_NUMBER
     ConsolepWriteConsoleOutputString,
     ConsolepFillConsoleOutput,
     ConsolepGetMode,
-    // ConsolepGetNumberOfFonts,
+    ConsolepGetNumberOfFonts,
     ConsolepGetNumberOfInputEvents,
     ConsolepGetScreenBufferInfo,
     ConsolepGetCursorInfo,
-    // ConsolepGetMouseInfo,
-    // ConsolepGetFontInfo,
-    // ConsolepGetFontSize,
-    // ConsolepGetCurrentFont,
+    ConsolepGetMouseInfo,
+    ConsolepGetFontInfo,
+    ConsolepGetFontSize,
+    ConsolepGetCurrentFont,
     ConsolepSetMode,
     ConsolepSetActiveScreenBuffer,
     ConsolepFlushInputBuffer,
@@ -46,28 +45,28 @@ typedef enum _CONSRV_API_NUMBER
     ConsolepSetWindowInfo,
     ConsolepScrollScreenBuffer,
     ConsolepSetTextAttribute,
-    // ConsolepSetFont,
+    ConsolepSetFont,
     ConsolepSetIcon,
     ConsolepReadConsole,
     ConsolepWriteConsole,
     ConsolepDuplicateHandle,
-    // ConsolepGetHandleInformation,
-    // ConsolepSetHandleInformation,
+    ConsolepGetHandleInformation,
+    ConsolepSetHandleInformation,
     ConsolepCloseHandle,
     ConsolepVerifyIoHandle,
-    ConsolepAlloc,
-    ConsolepFree,
+    ConsolepAlloc,                          // Not present in Win7
+    ConsolepFree,                           // Not present in Win7
     ConsolepGetTitle,
     ConsolepSetTitle,
     ConsolepCreateScreenBuffer,
     ConsolepInvalidateBitMapRect,
-    // ConsolepVDMOperation,
+    ConsolepVDMOperation,
     ConsolepSetCursor,
     ConsolepShowCursor,
     ConsolepMenuControl,
     ConsolepSetPalette,
     ConsolepSetDisplayMode,
-    // ConsolepRegisterVDM,
+    ConsolepRegisterVDM,
     ConsolepGetHardwareState,
     ConsolepSetHardwareState,
     ConsolepGetDisplayMode,
@@ -81,31 +80,36 @@ typedef enum _CONSRV_API_NUMBER
     ConsolepSetNumberOfCommands,
     ConsolepGetCommandHistoryLength,
     ConsolepGetCommandHistory,
-    // ConsolepSetCommandHistoryMode,
+    ConsolepSetCommandHistoryMode,          // Not present in Vista+
     ConsolepGetCP,
     ConsolepSetCP,
-    // ConsolepSetKeyShortcuts,
+    ConsolepSetKeyShortcuts,
     ConsolepSetMenuClose,
-    // ConsolepNotifyLastClose,
+    ConsolepNotifyLastClose,
     ConsolepGenerateCtrlEvent,
-    // ConsolepGetKeyboardLayoutName,
+    ConsolepGetKeyboardLayoutName,
     ConsolepGetConsoleWindow,
-    // ConsolepCharType,
-    // ConsolepSetLocalEUDC,
-    // ConsolepSetCursorMode,
-    // ConsolepGetCursorMode,
-    // ConsolepRegisterOS2,
-    // ConsolepSetOS2OemFormat,
-    // ConsolepGetNlsMode,
-    // ConsolepSetNlsMode,
-    // ConsolepRegisterConsoleIME,
-    // ConsolepUnregisterConsoleIME,
-    // ConsolepGetLangId,
-    ConsolepAttach,
+    ConsolepCharType,
+    ConsolepSetLocalEUDC,
+    ConsolepSetCursorMode,
+    ConsolepGetCursorMode,
+    ConsolepRegisterOS2,
+    ConsolepSetOS2OemFormat,
+    ConsolepGetNlsMode,
+    ConsolepSetNlsMode,
+    ConsolepRegisterConsoleIME,             // Not present in Win7
+    ConsolepUnregisterConsoleIME,           // Not present in Win7
+    // ConsolepQueryConsoleIME,                // Added only in Vista and Win2k8, not present in Win7
+    ConsolepGetLangId,
+    ConsolepAttach,                         // Not present in Win7
     ConsolepGetSelectionInfo,
     ConsolepGetProcessList,
-    ConsolepGetHistory,
-    ConsolepSetHistory,
+
+    ConsolepGetHistory,                     // Added in Vista+
+    ConsolepSetHistory,                     // Added in Vista+
+    // ConsolepSetCurrentFont,                 // Added in Vista+
+    // ConsolepSetScreenBufferInfo,            // Added in Vista+
+    // ConsolepClientConnect,                  // Added in Win7
 
     ConsolepMaxApiNumber
 } CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;
index ccf69fc..ffae407 100644 (file)
@@ -14,6 +14,7 @@ list(APPEND CONSRV_SOURCE
     consrv/init.c
     consrv/lineinput.c
     consrv/settings.c
+    consrv/subsysreg.c
     consrv/condrv/coninput.c
     consrv/condrv/conoutput.c
     consrv/condrv/console.c
index 80c24ac..c9e62d4 100644 (file)
@@ -39,8 +39,9 @@ CSR_API(SrvSetConsoleTextAttribute);
 CSR_API(SrvCreateConsoleScreenBuffer);
 CSR_API(SrvGetConsoleScreenBufferInfo);
 CSR_API(SrvSetConsoleActiveScreenBuffer);
-CSR_API(SrvScrollConsoleScreenBuffer);
 CSR_API(SrvSetConsoleScreenBufferSize);
+CSR_API(SrvScrollConsoleScreenBuffer);
+CSR_API(SrvSetConsoleWindowInfo);
 
 /* console.c */
 CSR_API(SrvAllocConsole);
@@ -50,6 +51,24 @@ CSR_API(SrvGetConsoleMode);
 CSR_API(SrvSetConsoleMode);
 CSR_API(SrvGetConsoleTitle);
 CSR_API(SrvSetConsoleTitle);
+CSR_API(SrvGetConsoleCP);
+CSR_API(SrvSetConsoleCP);
+CSR_API(SrvGetConsoleProcessList);
+CSR_API(SrvGenerateConsoleCtrlEvent);
+CSR_API(SrvConsoleNotifyLastClose);
+
+CSR_API(SrvGetConsoleMouseInfo);
+CSR_API(SrvSetConsoleKeyShortcuts);
+CSR_API(SrvGetConsoleKeyboardLayoutName);
+CSR_API(SrvGetConsoleCharType);
+CSR_API(SrvSetConsoleLocalEUDC);
+CSR_API(SrvSetConsoleCursorMode);
+CSR_API(SrvGetConsoleCursorMode);
+CSR_API(SrvGetConsoleNlsMode);
+CSR_API(SrvSetConsoleNlsMode);
+CSR_API(SrvGetConsoleLangId);
+
+/* frontendctl.c */
 CSR_API(SrvGetConsoleHardwareState);
 CSR_API(SrvSetConsoleHardwareState);
 CSR_API(SrvGetConsoleDisplayMode);
@@ -59,20 +78,23 @@ CSR_API(SrvShowConsoleCursor);
 CSR_API(SrvSetConsoleCursor);
 CSR_API(SrvConsoleMenuControl);
 CSR_API(SrvSetConsoleMenuClose);
-CSR_API(SrvSetConsoleWindowInfo);
 CSR_API(SrvGetConsoleWindow);
 CSR_API(SrvSetConsoleIcon);
-CSR_API(SrvGetConsoleCP);
-CSR_API(SrvSetConsoleCP);
-CSR_API(SrvGetConsoleProcessList);
-CSR_API(SrvGenerateConsoleCtrlEvent);
 CSR_API(SrvGetConsoleSelectionInfo);
 
+CSR_API(SrvGetConsoleNumberOfFonts);
+CSR_API(SrvGetConsoleFontInfo);
+CSR_API(SrvGetConsoleFontSize);
+CSR_API(SrvGetConsoleCurrentFont);
+CSR_API(SrvSetConsoleFont);
+
 /* handle.c */
 CSR_API(SrvOpenConsole);
+CSR_API(SrvDuplicateHandle);
+CSR_API(SrvGetHandleInformation);
+CSR_API(SrvSetHandleInformation);
 CSR_API(SrvCloseHandle);
 CSR_API(SrvVerifyConsoleIoHandle);
-CSR_API(SrvDuplicateHandle);
 
 /* lineinput.c */
 CSR_API(SrvGetConsoleCommandHistory);
@@ -81,5 +103,14 @@ CSR_API(SrvExpungeConsoleCommandHistory);
 CSR_API(SrvSetConsoleNumberOfCommands);
 CSR_API(SrvGetConsoleHistory);
 CSR_API(SrvSetConsoleHistory);
+CSR_API(SrvSetConsoleCommandHistoryMode);
+
+/* subsysreg.c */
+CSR_API(SrvRegisterConsoleVDM);
+CSR_API(SrvVDMConsoleOperation);
+CSR_API(SrvRegisterConsoleOS2);
+CSR_API(SrvSetConsoleOS2OemFormat);
+CSR_API(SrvRegisterConsoleIME);
+CSR_API(SrvUnregisterConsoleIME);
 
 /* EOF */
index d904d1a..0b7e2fa 100644 (file)
@@ -647,4 +647,72 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
     return Status;
 }
 
+CSR_API(SrvConsoleNotifyLastClose)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+
+CSR_API(SrvGetConsoleMouseInfo)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleKeyShortcuts)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleKeyboardLayoutName)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleCharType)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleLocalEUDC)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleCursorMode)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleCursorMode)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleNlsMode)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleNlsMode)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleLangId)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */
index f6e148f..05665b4 100644 (file)
@@ -328,4 +328,36 @@ CSR_API(SrvGetConsoleSelectionInfo)
     return Status;
 }
 
+
+
+CSR_API(SrvGetConsoleNumberOfFonts)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleFontInfo)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleFontSize)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvGetConsoleCurrentFont)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleFont)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */
index 9e6ac97..84384db 100644 (file)
@@ -744,62 +744,6 @@ CSR_API(SrvOpenConsole)
     return Status;
 }
 
-CSR_API(SrvCloseHandle)
-{
-    NTSTATUS Status;
-    PCONSOLE_CLOSEHANDLE CloseHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CloseHandleRequest;
-    PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
-    PCONSOLE Console;
-
-    Status = ConSrvGetConsole(ProcessData, &Console, TRUE);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1("Can't get console\n");
-        return Status;
-    }
-
-    Status = ConSrvRemoveObject(ProcessData, CloseHandleRequest->ConsoleHandle);
-
-    ConSrvReleaseConsole(Console, TRUE);
-    return Status;
-}
-
-CSR_API(SrvVerifyConsoleIoHandle)
-{
-    NTSTATUS Status;
-    PCONSOLE_VERIFYHANDLE VerifyHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.VerifyHandleRequest;
-    PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
-    PCONSOLE Console;
-
-    HANDLE ConsoleHandle = VerifyHandleRequest->ConsoleHandle;
-    ULONG Index = HandleToULong(ConsoleHandle) >> 2;
-
-    Status = ConSrvGetConsole(ProcessData, &Console, TRUE);
-    if (!NT_SUCCESS(Status))
-    {
-        DPRINT1("Can't get console\n");
-        return Status;
-    }
-
-    RtlEnterCriticalSection(&ProcessData->HandleTableLock);
-
-    // ASSERT( (ProcessData->HandleTable == NULL && ProcessData->HandleTableSize == 0) ||
-    //         (ProcessData->HandleTable != NULL && ProcessData->HandleTableSize != 0) );
-
-    if (!IsConsoleHandle(ConsoleHandle)    ||
-        Index >= ProcessData->HandleTableSize ||
-        ProcessData->HandleTable[Index].Object == NULL)
-    {
-        DPRINT("SrvVerifyConsoleIoHandle failed\n");
-        Status = STATUS_INVALID_HANDLE;
-    }
-
-    RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
-
-    ConSrvReleaseConsole(Console, TRUE);
-    return Status;
-}
-
 CSR_API(SrvDuplicateHandle)
 {
     NTSTATUS Status;
@@ -871,4 +815,72 @@ Quit:
     return Status;
 }
 
+CSR_API(SrvGetHandleInformation)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetHandleInformation)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvCloseHandle)
+{
+    NTSTATUS Status;
+    PCONSOLE_CLOSEHANDLE CloseHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CloseHandleRequest;
+    PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
+    PCONSOLE Console;
+
+    Status = ConSrvGetConsole(ProcessData, &Console, TRUE);
+    if (!NT_SUCCESS(Status))
+    {
+        DPRINT1("Can't get console\n");
+        return Status;
+    }
+
+    Status = ConSrvRemoveObject(ProcessData, CloseHandleRequest->ConsoleHandle);
+
+    ConSrvReleaseConsole(Console, TRUE);
+    return Status;
+}
+
+CSR_API(SrvVerifyConsoleIoHandle)
+{
+    NTSTATUS Status;
+    PCONSOLE_VERIFYHANDLE VerifyHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.VerifyHandleRequest;
+    PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
+    PCONSOLE Console;
+
+    HANDLE ConsoleHandle = VerifyHandleRequest->ConsoleHandle;
+    ULONG Index = HandleToULong(ConsoleHandle) >> 2;
+
+    Status = ConSrvGetConsole(ProcessData, &Console, TRUE);
+    if (!NT_SUCCESS(Status))
+    {
+        DPRINT1("Can't get console\n");
+        return Status;
+    }
+
+    RtlEnterCriticalSection(&ProcessData->HandleTableLock);
+
+    // ASSERT( (ProcessData->HandleTable == NULL && ProcessData->HandleTableSize == 0) ||
+    //         (ProcessData->HandleTable != NULL && ProcessData->HandleTableSize != 0) );
+
+    if (!IsConsoleHandle(ConsoleHandle)    ||
+        Index >= ProcessData->HandleTableSize ||
+        ProcessData->HandleTable[Index].Object == NULL)
+    {
+        DPRINT("SrvVerifyConsoleIoHandle failed\n");
+        Status = STATUS_INVALID_HANDLE;
+    }
+
+    RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
+
+    ConSrvReleaseConsole(Console, TRUE);
+    return Status;
+}
+
 /* EOF */
index 09b2685..1052295 100644 (file)
@@ -26,7 +26,6 @@ HINSTANCE ConSrvDllInstance = NULL;
 HANDLE ConSrvHeap = NULL;   // Our own heap.
 
 // Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
-// plus a little bit of Windows 7.
 PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
 {
     SrvOpenConsole,
@@ -38,14 +37,14 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
     SrvWriteConsoleOutputString,
     SrvFillConsoleOutput,
     SrvGetConsoleMode,
-    // SrvGetConsoleNumberOfFonts,
+    SrvGetConsoleNumberOfFonts,
     SrvGetConsoleNumberOfInputEvents,
     SrvGetConsoleScreenBufferInfo,
     SrvGetConsoleCursorInfo,
-    // SrvGetConsoleMouseInfo,
-    // SrvGetConsoleFontInfo,
-    // SrvGetConsoleFontSize,
-    // SrvGetConsoleCurrentFont,
+    SrvGetConsoleMouseInfo,
+    SrvGetConsoleFontInfo,
+    SrvGetConsoleFontSize,
+    SrvGetConsoleCurrentFont,
     SrvSetConsoleMode,
     SrvSetConsoleActiveScreenBuffer,
     SrvFlushConsoleInputBuffer,
@@ -56,28 +55,28 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
     SrvSetConsoleWindowInfo,
     SrvScrollConsoleScreenBuffer,
     SrvSetConsoleTextAttribute,
-    // SrvSetConsoleFont,
+    SrvSetConsoleFont,
     SrvSetConsoleIcon,
     SrvReadConsole,
     SrvWriteConsole,
     SrvDuplicateHandle,
-    // SrvGetHandleInformation,
-    // SrvSetHandleInformation,
+    SrvGetHandleInformation,
+    SrvSetHandleInformation,
     SrvCloseHandle,
     SrvVerifyConsoleIoHandle,
-    SrvAllocConsole,
-    SrvFreeConsole,
+    SrvAllocConsole,                        // Not present in Win7
+    SrvFreeConsole,                         // Not present in Win7
     SrvGetConsoleTitle,
     SrvSetConsoleTitle,
     SrvCreateConsoleScreenBuffer,
     SrvInvalidateBitMapRect,
-    // SrvVDMConsoleOperation,
+    SrvVDMConsoleOperation,
     SrvSetConsoleCursor,
     SrvShowConsoleCursor,
     SrvConsoleMenuControl,
     SrvSetConsolePalette,
     SrvSetConsoleDisplayMode,
-    // SrvRegisterConsoleVDM,
+    SrvRegisterConsoleVDM,
     SrvGetConsoleHardwareState,
     SrvSetConsoleHardwareState,
     SrvGetConsoleDisplayMode,
@@ -91,31 +90,36 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
     SrvSetConsoleNumberOfCommands,
     SrvGetConsoleCommandHistoryLength,
     SrvGetConsoleCommandHistory,
-    // SrvSetConsoleCommandHistoryMode,
+    SrvSetConsoleCommandHistoryMode,     // Not present in Vista+
     SrvGetConsoleCP,
     SrvSetConsoleCP,
-    // SrvSetConsoleKeyShortcuts,
+    SrvSetConsoleKeyShortcuts,
     SrvSetConsoleMenuClose,
-    // SrvConsoleNotifyLastClose,
+    SrvConsoleNotifyLastClose,
     SrvGenerateConsoleCtrlEvent,
-    // SrvGetConsoleKeyboardLayoutName,
+    SrvGetConsoleKeyboardLayoutName,
     SrvGetConsoleWindow,
-    // SrvGetConsoleCharType,
-    // SrvSetConsoleLocalEUDC,
-    // SrvSetConsoleCursorMode,
-    // SrvGetConsoleCursorMode,
-    // SrvRegisterConsoleOS2,
-    // SrvSetConsoleOS2OemFormat,
-    // SrvGetConsoleNlsMode,
-    // SrvSetConsoleNlsMode,
-    // SrvRegisterConsoleIME,
-    // SrvUnregisterConsoleIME,
-    // SrvGetConsoleLangId,
-    SrvAttachConsole,
+    SrvGetConsoleCharType,
+    SrvSetConsoleLocalEUDC,
+    SrvSetConsoleCursorMode,
+    SrvGetConsoleCursorMode,
+    SrvRegisterConsoleOS2,
+    SrvSetConsoleOS2OemFormat,
+    SrvGetConsoleNlsMode,
+    SrvSetConsoleNlsMode,
+    SrvRegisterConsoleIME,                  // Not present in Win7
+    SrvUnregisterConsoleIME,                // Not present in Win7
+    // SrvQueryConsoleIME,                     // Added only in Vista and Win2k8, not present in Win7
+    SrvGetConsoleLangId,
+    SrvAttachConsole,                       // Not present in Win7
     SrvGetConsoleSelectionInfo,
     SrvGetConsoleProcessList,
-    SrvGetConsoleHistory,
-    SrvSetConsoleHistory,
+
+    SrvGetConsoleHistory,                   // Added in Vista+
+    SrvSetConsoleHistory,                   // Added in Vista+
+    // SrvSetConsoleCurrentFont,               // Added in Vista+
+    // SrvSetScreenBufferInfo,                 // Added in Vista+
+    // SrvConsoleClientConnect,                // Added in Win7
 };
 
 BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
@@ -129,14 +133,14 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
     FALSE,   // SrvWriteConsoleOutputString,
     FALSE,   // SrvFillConsoleOutput,
     FALSE,   // SrvGetConsoleMode,
-    // FALSE,   // SrvGetConsoleNumberOfFonts,
+    FALSE,   // SrvGetConsoleNumberOfFonts,
     FALSE,   // SrvGetConsoleNumberOfInputEvents,
     FALSE,   // SrvGetConsoleScreenBufferInfo,
     FALSE,   // SrvGetConsoleCursorInfo,
-    // FALSE,   // SrvGetConsoleMouseInfo,
-    // FALSE,   // SrvGetConsoleFontInfo,
-    // FALSE,   // SrvGetConsoleFontSize,
-    // FALSE,   // SrvGetConsoleCurrentFont,
+    FALSE,   // SrvGetConsoleMouseInfo,
+    FALSE,   // SrvGetConsoleFontInfo,
+    FALSE,   // SrvGetConsoleFontSize,
+    FALSE,   // SrvGetConsoleCurrentFont,
     FALSE,   // SrvSetConsoleMode,
     FALSE,   // SrvSetConsoleActiveScreenBuffer,
     FALSE,   // SrvFlushConsoleInputBuffer,
@@ -147,13 +151,13 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
     FALSE,   // SrvSetConsoleWindowInfo,
     FALSE,   // SrvScrollConsoleScreenBuffer,
     FALSE,   // SrvSetConsoleTextAttribute,
-    // FALSE,   // SrvSetConsoleFont,
+    FALSE,   // SrvSetConsoleFont,
     FALSE,   // SrvSetConsoleIcon,
     FALSE,   // SrvReadConsole,
     FALSE,   // SrvWriteConsole,
     FALSE,   // SrvDuplicateHandle,
-    // FALSE,   // SrvGetHandleInformation,
-    // FALSE,   // SrvSetHandleInformation,
+    FALSE,   // SrvGetHandleInformation,
+    FALSE,   // SrvSetHandleInformation,
     FALSE,   // SrvCloseHandle,
     FALSE,   // SrvVerifyConsoleIoHandle,
     FALSE,   // SrvAllocConsole,
@@ -162,13 +166,13 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
     FALSE,   // SrvSetConsoleTitle,
     FALSE,   // SrvCreateConsoleScreenBuffer,
     FALSE,   // SrvInvalidateBitMapRect,
-    // FALSE,   // SrvVDMConsoleOperation,
+    FALSE,   // SrvVDMConsoleOperation,
     FALSE,   // SrvSetConsoleCursor,
     FALSE,   // SrvShowConsoleCursor,
     FALSE,   // SrvConsoleMenuControl,
     FALSE,   // SrvSetConsolePalette,
     FALSE,   // SrvSetConsoleDisplayMode,
-    // FALSE,   // SrvRegisterConsoleVDM,
+    FALSE,   // SrvRegisterConsoleVDM,
     FALSE,   // SrvGetConsoleHardwareState,
     FALSE,   // SrvSetConsoleHardwareState,
     TRUE,    // SrvGetConsoleDisplayMode,
@@ -182,31 +186,36 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
     FALSE,   // SrvSetConsoleNumberOfCommands,
     FALSE,   // SrvGetConsoleCommandHistoryLength,
     FALSE,   // SrvGetConsoleCommandHistory,
-    // FALSE,   // SrvSetConsoleCommandHistoryMode,
+    FALSE,   // SrvSetConsoleCommandHistoryMode,
     FALSE,   // SrvGetConsoleCP,
     FALSE,   // SrvSetConsoleCP,
-    // FALSE,   // SrvSetConsoleKeyShortcuts,
+    FALSE,   // SrvSetConsoleKeyShortcuts,
     FALSE,   // SrvSetConsoleMenuClose,
-    // FALSE,   // SrvConsoleNotifyLastClose,
+    FALSE,   // SrvConsoleNotifyLastClose,
     FALSE,   // SrvGenerateConsoleCtrlEvent,
-    // FALSE,   // SrvGetConsoleKeyboardLayoutName,
+    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,   // SrvGetConsoleCharType,
+    FALSE,   // SrvSetConsoleLocalEUDC,
+    FALSE,   // SrvSetConsoleCursorMode,
+    FALSE,   // SrvGetConsoleCursorMode,
+    FALSE,   // SrvRegisterConsoleOS2,
+    FALSE,   // SrvSetConsoleOS2OemFormat,
+    FALSE,   // SrvGetConsoleNlsMode,
+    FALSE,   // SrvSetConsoleNlsMode,
+    FALSE,   // SrvRegisterConsoleIME,
+    FALSE,   // SrvUnregisterConsoleIME,
+    // FALSE,   // SrvQueryConsoleIME,
+    FALSE,   // SrvGetConsoleLangId,
     FALSE,   // SrvAttachConsole,
     FALSE,   // SrvGetConsoleSelectionInfo,
     FALSE,   // SrvGetConsoleProcessList,
+
     FALSE,   // SrvGetConsoleHistory,
     FALSE,   // SrvSetConsoleHistory
+    // FALSE,   // SrvSetConsoleCurrentFont,
+    // FALSE,   // SrvSetScreenBufferInfo,
+    // FALSE,   // SrvConsoleClientConnect,
 };
 
 PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
@@ -220,14 +229,14 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
     "WriteConsoleOutputString",
     "FillConsoleOutput",
     "GetConsoleMode",
-    // "GetConsoleNumberOfFonts",
+    "GetConsoleNumberOfFonts",
     "GetConsoleNumberOfInputEvents",
     "GetConsoleScreenBufferInfo",
     "GetConsoleCursorInfo",
-    // "GetConsoleMouseInfo",
-    // "GetConsoleFontInfo",
-    // "GetConsoleFontSize",
-    // "GetConsoleCurrentFont",
+    "GetConsoleMouseInfo",
+    "GetConsoleFontInfo",
+    "GetConsoleFontSize",
+    "GetConsoleCurrentFont",
     "SetConsoleMode",
     "SetConsoleActiveScreenBuffer",
     "FlushConsoleInputBuffer",
@@ -238,13 +247,13 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
     "SetConsoleWindowInfo",
     "ScrollConsoleScreenBuffer",
     "SetConsoleTextAttribute",
-    // "SetConsoleFont",
+    "SetConsoleFont",
     "SetConsoleIcon",
     "ReadConsole",
     "WriteConsole",
     "DuplicateHandle",
-    // "GetHandleInformation",
-    // "SetHandleInformation",
+    "GetHandleInformation",
+    "SetHandleInformation",
     "CloseHandle",
     "VerifyConsoleIoHandle",
     "AllocConsole",
@@ -253,13 +262,13 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
     "SetConsoleTitle",
     "CreateConsoleScreenBuffer",
     "InvalidateBitMapRect",
-    // "VDMConsoleOperation",
+    "VDMConsoleOperation",
     "SetConsoleCursor",
     "ShowConsoleCursor",
     "ConsoleMenuControl",
     "SetConsolePalette",
     "SetConsoleDisplayMode",
-    // "RegisterConsoleVDM",
+    "RegisterConsoleVDM",
     "GetConsoleHardwareState",
     "SetConsoleHardwareState",
     "GetConsoleDisplayMode",
@@ -273,31 +282,36 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
     "SetConsoleNumberOfCommands",
     "GetConsoleCommandHistoryLength",
     "GetConsoleCommandHistory",
-    // "SetConsoleCommandHistoryMode",
+    "SetConsoleCommandHistoryMode",
     "GetConsoleCP",
     "SetConsoleCP",
-    // "SetConsoleKeyShortcuts",
+    "SetConsoleKeyShortcuts",
     "SetConsoleMenuClose",
-    // "ConsoleNotifyLastClose",
+    "ConsoleNotifyLastClose",
     "GenerateConsoleCtrlEvent",
-    // "GetConsoleKeyboardLayoutName",
+    "GetConsoleKeyboardLayoutName",
     "GetConsoleWindow",
-    // "GetConsoleCharType",
-    // "SetConsoleLocalEUDC",
-    // "SetConsoleCursorMode",
-    // "GetConsoleCursorMode",
-    // "RegisterConsoleOS2",
-    // "SetConsoleOS2OemFormat",
-    // "GetConsoleNlsMode",
-    // "SetConsoleNlsMode",
-    // "RegisterConsoleIME",
-    // "UnregisterConsoleIME",
-    // "GetConsoleLangId",
+    "GetConsoleCharType",
+    "SetConsoleLocalEUDC",
+    "SetConsoleCursorMode",
+    "GetConsoleCursorMode",
+    "RegisterConsoleOS2",
+    "SetConsoleOS2OemFormat",
+    "GetConsoleNlsMode",
+    "SetConsoleNlsMode",
+    "RegisterConsoleIME",
+    "UnregisterConsoleIME",
+    // "QueryConsoleIME",
+    "GetConsoleLangId",
     "AttachConsole",
     "GetConsoleSelectionInfo",
     "GetConsoleProcessList",
+
     "GetConsoleHistory",
     "SetConsoleHistory",
+    // "SetConsoleCurrentFont",
+    // "SetScreenBufferInfo",
+    // "ConsoleClientConnect",
 };
 
 
index 2f54f0e..5124096 100644 (file)
@@ -641,4 +641,10 @@ CSR_API(SrvSetConsoleHistory)
     return Status;
 }
 
+CSR_API(SrvSetConsoleCommandHistoryMode)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
 /* EOF */
diff --git a/reactos/win32ss/user/winsrv/consrv/subsysreg.c b/reactos/win32ss/user/winsrv/consrv/subsysreg.c
new file mode 100644 (file)
index 0000000..d347d00
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS Console Server DLL
+ * FILE:            win32ss/user/winsrv/consrv/subsysreg.c
+ * PURPOSE:         Registration APIs for VDM, OS2 and IME subsystems
+ * PROGRAMMERS:     Hermes Belusca-Maito (hermes.belusca@sfr.fr)
+ */
+
+/* INCLUDES *******************************************************************/
+
+#include "consrv.h"
+
+#define NDEBUG
+#include <debug.h>
+
+
+/* PUBLIC SERVER APIS *********************************************************/
+
+/*
+ * VDM Subsystem
+ */
+
+CSR_API(SrvRegisterConsoleVDM)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvVDMConsoleOperation)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * OS/2 Subsystem
+ */
+
+CSR_API(SrvRegisterConsoleOS2)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvSetConsoleOS2OemFormat)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+
+/*
+ * IME Subsystem
+ */
+
+CSR_API(SrvRegisterConsoleIME)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+CSR_API(SrvUnregisterConsoleIME)
+{
+    DPRINT1("%s not yet implemented\n", __FUNCTION__);
+    return STATUS_NOT_IMPLEMENTED;
+}
+
+/* EOF */