[CONSRV]: Stubplement the remaining APIs needed for Windows kernel32.

svn path=/trunk/; revision=59907
This commit is contained in:
Hermès Bélusca-Maïto 2013-08-30 17:53:45 +00:00
parent a30fba55c1
commit ef6d5c266e
9 changed files with 412 additions and 175 deletions

View file

@ -16,7 +16,6 @@
#define CONSRV_FIRST_API_NUMBER 512 #define CONSRV_FIRST_API_NUMBER 512
// Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3 // 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 typedef enum _CONSRV_API_NUMBER
{ {
ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER, ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
@ -28,14 +27,14 @@ typedef enum _CONSRV_API_NUMBER
ConsolepWriteConsoleOutputString, ConsolepWriteConsoleOutputString,
ConsolepFillConsoleOutput, ConsolepFillConsoleOutput,
ConsolepGetMode, ConsolepGetMode,
// ConsolepGetNumberOfFonts, ConsolepGetNumberOfFonts,
ConsolepGetNumberOfInputEvents, ConsolepGetNumberOfInputEvents,
ConsolepGetScreenBufferInfo, ConsolepGetScreenBufferInfo,
ConsolepGetCursorInfo, ConsolepGetCursorInfo,
// ConsolepGetMouseInfo, ConsolepGetMouseInfo,
// ConsolepGetFontInfo, ConsolepGetFontInfo,
// ConsolepGetFontSize, ConsolepGetFontSize,
// ConsolepGetCurrentFont, ConsolepGetCurrentFont,
ConsolepSetMode, ConsolepSetMode,
ConsolepSetActiveScreenBuffer, ConsolepSetActiveScreenBuffer,
ConsolepFlushInputBuffer, ConsolepFlushInputBuffer,
@ -46,28 +45,28 @@ typedef enum _CONSRV_API_NUMBER
ConsolepSetWindowInfo, ConsolepSetWindowInfo,
ConsolepScrollScreenBuffer, ConsolepScrollScreenBuffer,
ConsolepSetTextAttribute, ConsolepSetTextAttribute,
// ConsolepSetFont, ConsolepSetFont,
ConsolepSetIcon, ConsolepSetIcon,
ConsolepReadConsole, ConsolepReadConsole,
ConsolepWriteConsole, ConsolepWriteConsole,
ConsolepDuplicateHandle, ConsolepDuplicateHandle,
// ConsolepGetHandleInformation, ConsolepGetHandleInformation,
// ConsolepSetHandleInformation, ConsolepSetHandleInformation,
ConsolepCloseHandle, ConsolepCloseHandle,
ConsolepVerifyIoHandle, ConsolepVerifyIoHandle,
ConsolepAlloc, ConsolepAlloc, // Not present in Win7
ConsolepFree, ConsolepFree, // Not present in Win7
ConsolepGetTitle, ConsolepGetTitle,
ConsolepSetTitle, ConsolepSetTitle,
ConsolepCreateScreenBuffer, ConsolepCreateScreenBuffer,
ConsolepInvalidateBitMapRect, ConsolepInvalidateBitMapRect,
// ConsolepVDMOperation, ConsolepVDMOperation,
ConsolepSetCursor, ConsolepSetCursor,
ConsolepShowCursor, ConsolepShowCursor,
ConsolepMenuControl, ConsolepMenuControl,
ConsolepSetPalette, ConsolepSetPalette,
ConsolepSetDisplayMode, ConsolepSetDisplayMode,
// ConsolepRegisterVDM, ConsolepRegisterVDM,
ConsolepGetHardwareState, ConsolepGetHardwareState,
ConsolepSetHardwareState, ConsolepSetHardwareState,
ConsolepGetDisplayMode, ConsolepGetDisplayMode,
@ -81,31 +80,36 @@ typedef enum _CONSRV_API_NUMBER
ConsolepSetNumberOfCommands, ConsolepSetNumberOfCommands,
ConsolepGetCommandHistoryLength, ConsolepGetCommandHistoryLength,
ConsolepGetCommandHistory, ConsolepGetCommandHistory,
// ConsolepSetCommandHistoryMode, ConsolepSetCommandHistoryMode, // Not present in Vista+
ConsolepGetCP, ConsolepGetCP,
ConsolepSetCP, ConsolepSetCP,
// ConsolepSetKeyShortcuts, ConsolepSetKeyShortcuts,
ConsolepSetMenuClose, ConsolepSetMenuClose,
// ConsolepNotifyLastClose, ConsolepNotifyLastClose,
ConsolepGenerateCtrlEvent, ConsolepGenerateCtrlEvent,
// ConsolepGetKeyboardLayoutName, ConsolepGetKeyboardLayoutName,
ConsolepGetConsoleWindow, ConsolepGetConsoleWindow,
// ConsolepCharType, ConsolepCharType,
// ConsolepSetLocalEUDC, ConsolepSetLocalEUDC,
// ConsolepSetCursorMode, ConsolepSetCursorMode,
// ConsolepGetCursorMode, ConsolepGetCursorMode,
// ConsolepRegisterOS2, ConsolepRegisterOS2,
// ConsolepSetOS2OemFormat, ConsolepSetOS2OemFormat,
// ConsolepGetNlsMode, ConsolepGetNlsMode,
// ConsolepSetNlsMode, ConsolepSetNlsMode,
// ConsolepRegisterConsoleIME, ConsolepRegisterConsoleIME, // Not present in Win7
// ConsolepUnregisterConsoleIME, ConsolepUnregisterConsoleIME, // Not present in Win7
// ConsolepGetLangId, // ConsolepQueryConsoleIME, // Added only in Vista and Win2k8, not present in Win7
ConsolepAttach, ConsolepGetLangId,
ConsolepAttach, // Not present in Win7
ConsolepGetSelectionInfo, ConsolepGetSelectionInfo,
ConsolepGetProcessList, ConsolepGetProcessList,
ConsolepGetHistory,
ConsolepSetHistory, ConsolepGetHistory, // Added in Vista+
ConsolepSetHistory, // Added in Vista+
// ConsolepSetCurrentFont, // Added in Vista+
// ConsolepSetScreenBufferInfo, // Added in Vista+
// ConsolepClientConnect, // Added in Win7
ConsolepMaxApiNumber ConsolepMaxApiNumber
} CONSRV_API_NUMBER, *PCONSRV_API_NUMBER; } CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;

View file

@ -14,6 +14,7 @@ list(APPEND CONSRV_SOURCE
consrv/init.c consrv/init.c
consrv/lineinput.c consrv/lineinput.c
consrv/settings.c consrv/settings.c
consrv/subsysreg.c
consrv/condrv/coninput.c consrv/condrv/coninput.c
consrv/condrv/conoutput.c consrv/condrv/conoutput.c
consrv/condrv/console.c consrv/condrv/console.c

View file

@ -39,8 +39,9 @@ CSR_API(SrvSetConsoleTextAttribute);
CSR_API(SrvCreateConsoleScreenBuffer); CSR_API(SrvCreateConsoleScreenBuffer);
CSR_API(SrvGetConsoleScreenBufferInfo); CSR_API(SrvGetConsoleScreenBufferInfo);
CSR_API(SrvSetConsoleActiveScreenBuffer); CSR_API(SrvSetConsoleActiveScreenBuffer);
CSR_API(SrvScrollConsoleScreenBuffer);
CSR_API(SrvSetConsoleScreenBufferSize); CSR_API(SrvSetConsoleScreenBufferSize);
CSR_API(SrvScrollConsoleScreenBuffer);
CSR_API(SrvSetConsoleWindowInfo);
/* console.c */ /* console.c */
CSR_API(SrvAllocConsole); CSR_API(SrvAllocConsole);
@ -50,6 +51,24 @@ CSR_API(SrvGetConsoleMode);
CSR_API(SrvSetConsoleMode); CSR_API(SrvSetConsoleMode);
CSR_API(SrvGetConsoleTitle); CSR_API(SrvGetConsoleTitle);
CSR_API(SrvSetConsoleTitle); 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(SrvGetConsoleHardwareState);
CSR_API(SrvSetConsoleHardwareState); CSR_API(SrvSetConsoleHardwareState);
CSR_API(SrvGetConsoleDisplayMode); CSR_API(SrvGetConsoleDisplayMode);
@ -59,20 +78,23 @@ CSR_API(SrvShowConsoleCursor);
CSR_API(SrvSetConsoleCursor); CSR_API(SrvSetConsoleCursor);
CSR_API(SrvConsoleMenuControl); CSR_API(SrvConsoleMenuControl);
CSR_API(SrvSetConsoleMenuClose); CSR_API(SrvSetConsoleMenuClose);
CSR_API(SrvSetConsoleWindowInfo);
CSR_API(SrvGetConsoleWindow); CSR_API(SrvGetConsoleWindow);
CSR_API(SrvSetConsoleIcon); CSR_API(SrvSetConsoleIcon);
CSR_API(SrvGetConsoleCP);
CSR_API(SrvSetConsoleCP);
CSR_API(SrvGetConsoleProcessList);
CSR_API(SrvGenerateConsoleCtrlEvent);
CSR_API(SrvGetConsoleSelectionInfo); CSR_API(SrvGetConsoleSelectionInfo);
CSR_API(SrvGetConsoleNumberOfFonts);
CSR_API(SrvGetConsoleFontInfo);
CSR_API(SrvGetConsoleFontSize);
CSR_API(SrvGetConsoleCurrentFont);
CSR_API(SrvSetConsoleFont);
/* handle.c */ /* handle.c */
CSR_API(SrvOpenConsole); CSR_API(SrvOpenConsole);
CSR_API(SrvDuplicateHandle);
CSR_API(SrvGetHandleInformation);
CSR_API(SrvSetHandleInformation);
CSR_API(SrvCloseHandle); CSR_API(SrvCloseHandle);
CSR_API(SrvVerifyConsoleIoHandle); CSR_API(SrvVerifyConsoleIoHandle);
CSR_API(SrvDuplicateHandle);
/* lineinput.c */ /* lineinput.c */
CSR_API(SrvGetConsoleCommandHistory); CSR_API(SrvGetConsoleCommandHistory);
@ -81,5 +103,14 @@ CSR_API(SrvExpungeConsoleCommandHistory);
CSR_API(SrvSetConsoleNumberOfCommands); CSR_API(SrvSetConsoleNumberOfCommands);
CSR_API(SrvGetConsoleHistory); CSR_API(SrvGetConsoleHistory);
CSR_API(SrvSetConsoleHistory); 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 */ /* EOF */

View file

@ -647,4 +647,72 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
return Status; 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 */ /* EOF */

View file

@ -328,4 +328,36 @@ CSR_API(SrvGetConsoleSelectionInfo)
return Status; 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 */ /* EOF */

View file

@ -744,62 +744,6 @@ CSR_API(SrvOpenConsole)
return Status; 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) CSR_API(SrvDuplicateHandle)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -871,4 +815,72 @@ Quit:
return Status; 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 */ /* EOF */

View file

@ -26,7 +26,6 @@ HINSTANCE ConSrvDllInstance = NULL;
HANDLE ConSrvHeap = NULL; // Our own heap. HANDLE ConSrvHeap = NULL; // Our own heap.
// Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3 // 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] = PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
{ {
SrvOpenConsole, SrvOpenConsole,
@ -38,14 +37,14 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
SrvWriteConsoleOutputString, SrvWriteConsoleOutputString,
SrvFillConsoleOutput, SrvFillConsoleOutput,
SrvGetConsoleMode, SrvGetConsoleMode,
// SrvGetConsoleNumberOfFonts, SrvGetConsoleNumberOfFonts,
SrvGetConsoleNumberOfInputEvents, SrvGetConsoleNumberOfInputEvents,
SrvGetConsoleScreenBufferInfo, SrvGetConsoleScreenBufferInfo,
SrvGetConsoleCursorInfo, SrvGetConsoleCursorInfo,
// SrvGetConsoleMouseInfo, SrvGetConsoleMouseInfo,
// SrvGetConsoleFontInfo, SrvGetConsoleFontInfo,
// SrvGetConsoleFontSize, SrvGetConsoleFontSize,
// SrvGetConsoleCurrentFont, SrvGetConsoleCurrentFont,
SrvSetConsoleMode, SrvSetConsoleMode,
SrvSetConsoleActiveScreenBuffer, SrvSetConsoleActiveScreenBuffer,
SrvFlushConsoleInputBuffer, SrvFlushConsoleInputBuffer,
@ -56,28 +55,28 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
SrvSetConsoleWindowInfo, SrvSetConsoleWindowInfo,
SrvScrollConsoleScreenBuffer, SrvScrollConsoleScreenBuffer,
SrvSetConsoleTextAttribute, SrvSetConsoleTextAttribute,
// SrvSetConsoleFont, SrvSetConsoleFont,
SrvSetConsoleIcon, SrvSetConsoleIcon,
SrvReadConsole, SrvReadConsole,
SrvWriteConsole, SrvWriteConsole,
SrvDuplicateHandle, SrvDuplicateHandle,
// SrvGetHandleInformation, SrvGetHandleInformation,
// SrvSetHandleInformation, SrvSetHandleInformation,
SrvCloseHandle, SrvCloseHandle,
SrvVerifyConsoleIoHandle, SrvVerifyConsoleIoHandle,
SrvAllocConsole, SrvAllocConsole, // Not present in Win7
SrvFreeConsole, SrvFreeConsole, // Not present in Win7
SrvGetConsoleTitle, SrvGetConsoleTitle,
SrvSetConsoleTitle, SrvSetConsoleTitle,
SrvCreateConsoleScreenBuffer, SrvCreateConsoleScreenBuffer,
SrvInvalidateBitMapRect, SrvInvalidateBitMapRect,
// SrvVDMConsoleOperation, SrvVDMConsoleOperation,
SrvSetConsoleCursor, SrvSetConsoleCursor,
SrvShowConsoleCursor, SrvShowConsoleCursor,
SrvConsoleMenuControl, SrvConsoleMenuControl,
SrvSetConsolePalette, SrvSetConsolePalette,
SrvSetConsoleDisplayMode, SrvSetConsoleDisplayMode,
// SrvRegisterConsoleVDM, SrvRegisterConsoleVDM,
SrvGetConsoleHardwareState, SrvGetConsoleHardwareState,
SrvSetConsoleHardwareState, SrvSetConsoleHardwareState,
SrvGetConsoleDisplayMode, SrvGetConsoleDisplayMode,
@ -91,31 +90,36 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
SrvSetConsoleNumberOfCommands, SrvSetConsoleNumberOfCommands,
SrvGetConsoleCommandHistoryLength, SrvGetConsoleCommandHistoryLength,
SrvGetConsoleCommandHistory, SrvGetConsoleCommandHistory,
// SrvSetConsoleCommandHistoryMode, SrvSetConsoleCommandHistoryMode, // Not present in Vista+
SrvGetConsoleCP, SrvGetConsoleCP,
SrvSetConsoleCP, SrvSetConsoleCP,
// SrvSetConsoleKeyShortcuts, SrvSetConsoleKeyShortcuts,
SrvSetConsoleMenuClose, SrvSetConsoleMenuClose,
// SrvConsoleNotifyLastClose, SrvConsoleNotifyLastClose,
SrvGenerateConsoleCtrlEvent, SrvGenerateConsoleCtrlEvent,
// SrvGetConsoleKeyboardLayoutName, SrvGetConsoleKeyboardLayoutName,
SrvGetConsoleWindow, SrvGetConsoleWindow,
// SrvGetConsoleCharType, SrvGetConsoleCharType,
// SrvSetConsoleLocalEUDC, SrvSetConsoleLocalEUDC,
// SrvSetConsoleCursorMode, SrvSetConsoleCursorMode,
// SrvGetConsoleCursorMode, SrvGetConsoleCursorMode,
// SrvRegisterConsoleOS2, SrvRegisterConsoleOS2,
// SrvSetConsoleOS2OemFormat, SrvSetConsoleOS2OemFormat,
// SrvGetConsoleNlsMode, SrvGetConsoleNlsMode,
// SrvSetConsoleNlsMode, SrvSetConsoleNlsMode,
// SrvRegisterConsoleIME, SrvRegisterConsoleIME, // Not present in Win7
// SrvUnregisterConsoleIME, SrvUnregisterConsoleIME, // Not present in Win7
// SrvGetConsoleLangId, // SrvQueryConsoleIME, // Added only in Vista and Win2k8, not present in Win7
SrvAttachConsole, SrvGetConsoleLangId,
SrvAttachConsole, // Not present in Win7
SrvGetConsoleSelectionInfo, SrvGetConsoleSelectionInfo,
SrvGetConsoleProcessList, 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] = BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
@ -129,14 +133,14 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
FALSE, // SrvWriteConsoleOutputString, FALSE, // SrvWriteConsoleOutputString,
FALSE, // SrvFillConsoleOutput, FALSE, // SrvFillConsoleOutput,
FALSE, // SrvGetConsoleMode, FALSE, // SrvGetConsoleMode,
// FALSE, // SrvGetConsoleNumberOfFonts, FALSE, // SrvGetConsoleNumberOfFonts,
FALSE, // SrvGetConsoleNumberOfInputEvents, FALSE, // SrvGetConsoleNumberOfInputEvents,
FALSE, // SrvGetConsoleScreenBufferInfo, FALSE, // SrvGetConsoleScreenBufferInfo,
FALSE, // SrvGetConsoleCursorInfo, FALSE, // SrvGetConsoleCursorInfo,
// FALSE, // SrvGetConsoleMouseInfo, FALSE, // SrvGetConsoleMouseInfo,
// FALSE, // SrvGetConsoleFontInfo, FALSE, // SrvGetConsoleFontInfo,
// FALSE, // SrvGetConsoleFontSize, FALSE, // SrvGetConsoleFontSize,
// FALSE, // SrvGetConsoleCurrentFont, FALSE, // SrvGetConsoleCurrentFont,
FALSE, // SrvSetConsoleMode, FALSE, // SrvSetConsoleMode,
FALSE, // SrvSetConsoleActiveScreenBuffer, FALSE, // SrvSetConsoleActiveScreenBuffer,
FALSE, // SrvFlushConsoleInputBuffer, FALSE, // SrvFlushConsoleInputBuffer,
@ -147,13 +151,13 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
FALSE, // SrvSetConsoleWindowInfo, FALSE, // SrvSetConsoleWindowInfo,
FALSE, // SrvScrollConsoleScreenBuffer, FALSE, // SrvScrollConsoleScreenBuffer,
FALSE, // SrvSetConsoleTextAttribute, FALSE, // SrvSetConsoleTextAttribute,
// FALSE, // SrvSetConsoleFont, FALSE, // SrvSetConsoleFont,
FALSE, // SrvSetConsoleIcon, FALSE, // SrvSetConsoleIcon,
FALSE, // SrvReadConsole, FALSE, // SrvReadConsole,
FALSE, // SrvWriteConsole, FALSE, // SrvWriteConsole,
FALSE, // SrvDuplicateHandle, FALSE, // SrvDuplicateHandle,
// FALSE, // SrvGetHandleInformation, FALSE, // SrvGetHandleInformation,
// FALSE, // SrvSetHandleInformation, FALSE, // SrvSetHandleInformation,
FALSE, // SrvCloseHandle, FALSE, // SrvCloseHandle,
FALSE, // SrvVerifyConsoleIoHandle, FALSE, // SrvVerifyConsoleIoHandle,
FALSE, // SrvAllocConsole, FALSE, // SrvAllocConsole,
@ -162,13 +166,13 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
FALSE, // SrvSetConsoleTitle, FALSE, // SrvSetConsoleTitle,
FALSE, // SrvCreateConsoleScreenBuffer, FALSE, // SrvCreateConsoleScreenBuffer,
FALSE, // SrvInvalidateBitMapRect, FALSE, // SrvInvalidateBitMapRect,
// FALSE, // SrvVDMConsoleOperation, FALSE, // SrvVDMConsoleOperation,
FALSE, // SrvSetConsoleCursor, FALSE, // SrvSetConsoleCursor,
FALSE, // SrvShowConsoleCursor, FALSE, // SrvShowConsoleCursor,
FALSE, // SrvConsoleMenuControl, FALSE, // SrvConsoleMenuControl,
FALSE, // SrvSetConsolePalette, FALSE, // SrvSetConsolePalette,
FALSE, // SrvSetConsoleDisplayMode, FALSE, // SrvSetConsoleDisplayMode,
// FALSE, // SrvRegisterConsoleVDM, FALSE, // SrvRegisterConsoleVDM,
FALSE, // SrvGetConsoleHardwareState, FALSE, // SrvGetConsoleHardwareState,
FALSE, // SrvSetConsoleHardwareState, FALSE, // SrvSetConsoleHardwareState,
TRUE, // SrvGetConsoleDisplayMode, TRUE, // SrvGetConsoleDisplayMode,
@ -182,31 +186,36 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
FALSE, // SrvSetConsoleNumberOfCommands, FALSE, // SrvSetConsoleNumberOfCommands,
FALSE, // SrvGetConsoleCommandHistoryLength, FALSE, // SrvGetConsoleCommandHistoryLength,
FALSE, // SrvGetConsoleCommandHistory, FALSE, // SrvGetConsoleCommandHistory,
// FALSE, // SrvSetConsoleCommandHistoryMode, FALSE, // SrvSetConsoleCommandHistoryMode,
FALSE, // SrvGetConsoleCP, FALSE, // SrvGetConsoleCP,
FALSE, // SrvSetConsoleCP, FALSE, // SrvSetConsoleCP,
// FALSE, // SrvSetConsoleKeyShortcuts, FALSE, // SrvSetConsoleKeyShortcuts,
FALSE, // SrvSetConsoleMenuClose, FALSE, // SrvSetConsoleMenuClose,
// FALSE, // SrvConsoleNotifyLastClose, FALSE, // SrvConsoleNotifyLastClose,
FALSE, // SrvGenerateConsoleCtrlEvent, FALSE, // SrvGenerateConsoleCtrlEvent,
// FALSE, // SrvGetConsoleKeyboardLayoutName, FALSE, // SrvGetConsoleKeyboardLayoutName,
FALSE, // SrvGetConsoleWindow, FALSE, // SrvGetConsoleWindow,
// FALSE, // SrvGetConsoleCharType, FALSE, // SrvGetConsoleCharType,
// FALSE, // SrvSetConsoleLocalEUDC, FALSE, // SrvSetConsoleLocalEUDC,
// FALSE, // SrvSetConsoleCursorMode, FALSE, // SrvSetConsoleCursorMode,
// FALSE, // SrvGetConsoleCursorMode, FALSE, // SrvGetConsoleCursorMode,
// FALSE, // SrvRegisterConsoleOS2, FALSE, // SrvRegisterConsoleOS2,
// FALSE, // SrvSetConsoleOS2OemFormat, FALSE, // SrvSetConsoleOS2OemFormat,
// FALSE, // SrvGetConsoleNlsMode, FALSE, // SrvGetConsoleNlsMode,
// FALSE, // SrvSetConsoleNlsMode, FALSE, // SrvSetConsoleNlsMode,
// FALSE, // SrvRegisterConsoleIME, FALSE, // SrvRegisterConsoleIME,
// FALSE, // SrvUnregisterConsoleIME, FALSE, // SrvUnregisterConsoleIME,
// FALSE, // SrvGetConsoleLangId, // FALSE, // SrvQueryConsoleIME,
FALSE, // SrvGetConsoleLangId,
FALSE, // SrvAttachConsole, FALSE, // SrvAttachConsole,
FALSE, // SrvGetConsoleSelectionInfo, FALSE, // SrvGetConsoleSelectionInfo,
FALSE, // SrvGetConsoleProcessList, FALSE, // SrvGetConsoleProcessList,
FALSE, // SrvGetConsoleHistory, FALSE, // SrvGetConsoleHistory,
FALSE, // SrvSetConsoleHistory FALSE, // SrvSetConsoleHistory
// FALSE, // SrvSetConsoleCurrentFont,
// FALSE, // SrvSetScreenBufferInfo,
// FALSE, // SrvConsoleClientConnect,
}; };
PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] = PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER] =
@ -220,14 +229,14 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
"WriteConsoleOutputString", "WriteConsoleOutputString",
"FillConsoleOutput", "FillConsoleOutput",
"GetConsoleMode", "GetConsoleMode",
// "GetConsoleNumberOfFonts", "GetConsoleNumberOfFonts",
"GetConsoleNumberOfInputEvents", "GetConsoleNumberOfInputEvents",
"GetConsoleScreenBufferInfo", "GetConsoleScreenBufferInfo",
"GetConsoleCursorInfo", "GetConsoleCursorInfo",
// "GetConsoleMouseInfo", "GetConsoleMouseInfo",
// "GetConsoleFontInfo", "GetConsoleFontInfo",
// "GetConsoleFontSize", "GetConsoleFontSize",
// "GetConsoleCurrentFont", "GetConsoleCurrentFont",
"SetConsoleMode", "SetConsoleMode",
"SetConsoleActiveScreenBuffer", "SetConsoleActiveScreenBuffer",
"FlushConsoleInputBuffer", "FlushConsoleInputBuffer",
@ -238,13 +247,13 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
"SetConsoleWindowInfo", "SetConsoleWindowInfo",
"ScrollConsoleScreenBuffer", "ScrollConsoleScreenBuffer",
"SetConsoleTextAttribute", "SetConsoleTextAttribute",
// "SetConsoleFont", "SetConsoleFont",
"SetConsoleIcon", "SetConsoleIcon",
"ReadConsole", "ReadConsole",
"WriteConsole", "WriteConsole",
"DuplicateHandle", "DuplicateHandle",
// "GetHandleInformation", "GetHandleInformation",
// "SetHandleInformation", "SetHandleInformation",
"CloseHandle", "CloseHandle",
"VerifyConsoleIoHandle", "VerifyConsoleIoHandle",
"AllocConsole", "AllocConsole",
@ -253,13 +262,13 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
"SetConsoleTitle", "SetConsoleTitle",
"CreateConsoleScreenBuffer", "CreateConsoleScreenBuffer",
"InvalidateBitMapRect", "InvalidateBitMapRect",
// "VDMConsoleOperation", "VDMConsoleOperation",
"SetConsoleCursor", "SetConsoleCursor",
"ShowConsoleCursor", "ShowConsoleCursor",
"ConsoleMenuControl", "ConsoleMenuControl",
"SetConsolePalette", "SetConsolePalette",
"SetConsoleDisplayMode", "SetConsoleDisplayMode",
// "RegisterConsoleVDM", "RegisterConsoleVDM",
"GetConsoleHardwareState", "GetConsoleHardwareState",
"SetConsoleHardwareState", "SetConsoleHardwareState",
"GetConsoleDisplayMode", "GetConsoleDisplayMode",
@ -273,31 +282,36 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
"SetConsoleNumberOfCommands", "SetConsoleNumberOfCommands",
"GetConsoleCommandHistoryLength", "GetConsoleCommandHistoryLength",
"GetConsoleCommandHistory", "GetConsoleCommandHistory",
// "SetConsoleCommandHistoryMode", "SetConsoleCommandHistoryMode",
"GetConsoleCP", "GetConsoleCP",
"SetConsoleCP", "SetConsoleCP",
// "SetConsoleKeyShortcuts", "SetConsoleKeyShortcuts",
"SetConsoleMenuClose", "SetConsoleMenuClose",
// "ConsoleNotifyLastClose", "ConsoleNotifyLastClose",
"GenerateConsoleCtrlEvent", "GenerateConsoleCtrlEvent",
// "GetConsoleKeyboardLayoutName", "GetConsoleKeyboardLayoutName",
"GetConsoleWindow", "GetConsoleWindow",
// "GetConsoleCharType", "GetConsoleCharType",
// "SetConsoleLocalEUDC", "SetConsoleLocalEUDC",
// "SetConsoleCursorMode", "SetConsoleCursorMode",
// "GetConsoleCursorMode", "GetConsoleCursorMode",
// "RegisterConsoleOS2", "RegisterConsoleOS2",
// "SetConsoleOS2OemFormat", "SetConsoleOS2OemFormat",
// "GetConsoleNlsMode", "GetConsoleNlsMode",
// "SetConsoleNlsMode", "SetConsoleNlsMode",
// "RegisterConsoleIME", "RegisterConsoleIME",
// "UnregisterConsoleIME", "UnregisterConsoleIME",
// "GetConsoleLangId", // "QueryConsoleIME",
"GetConsoleLangId",
"AttachConsole", "AttachConsole",
"GetConsoleSelectionInfo", "GetConsoleSelectionInfo",
"GetConsoleProcessList", "GetConsoleProcessList",
"GetConsoleHistory", "GetConsoleHistory",
"SetConsoleHistory", "SetConsoleHistory",
// "SetConsoleCurrentFont",
// "SetScreenBufferInfo",
// "ConsoleClientConnect",
}; };

View file

@ -641,4 +641,10 @@ CSR_API(SrvSetConsoleHistory)
return Status; return Status;
} }
CSR_API(SrvSetConsoleCommandHistoryMode)
{
DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED;
}
/* EOF */ /* EOF */

View file

@ -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 */