[KERNEL32-CONSRV]

Rename some structures (CSRSS_... ---> CONSOLE_...) and clarify what the ConsoleHandle members are for (--> OutputHandle or InputHandle).
No code changes otherwise.

svn path=/branches/ros-csrss/; revision=58119
This commit is contained in:
Hermès Bélusca-Maïto 2013-01-05 23:10:12 +00:00
parent 51aa122e2d
commit 86fa2ba4e0
12 changed files with 623 additions and 629 deletions

View file

@ -29,32 +29,32 @@ AddConsoleAliasW(LPCWSTR lpSource,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_ALIAS ConsoleAlias = &ApiMessage.Data.ConsoleAlias;
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &ApiMessage.Data.ConsoleAliasRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG CapturedStrings;
DPRINT("AddConsoleAliasW enterd with lpSource %S lpTarget %S lpExeName %S\n", lpSource, lpTarget, lpExeName);
/* Determine the needed sizes */
ConsoleAlias->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR);
ConsoleAlias->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
ConsoleAliasRequest->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR);
ConsoleAliasRequest->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
CapturedStrings = 2;
if (lpTarget) /* The target can be optional */
{
ConsoleAlias->TargetLength = (wcslen(lpTarget) + 1) * sizeof(WCHAR);
ConsoleAliasRequest->TargetLength = (wcslen(lpTarget) + 1) * sizeof(WCHAR);
CapturedStrings++;
}
else
{
ConsoleAlias->TargetLength = 0;
ConsoleAliasRequest->TargetLength = 0;
}
/* Allocate a Capture Buffer */
CaptureBuffer = CsrAllocateCaptureBuffer(CapturedStrings,
ConsoleAlias->SourceLength +
ConsoleAlias->ExeLength +
ConsoleAlias->TargetLength);
ConsoleAliasRequest->SourceLength +
ConsoleAliasRequest->ExeLength +
ConsoleAliasRequest->TargetLength);
if (CaptureBuffer == NULL)
{
DPRINT1("CsrAllocateCaptureBuffer failed!\n");
@ -65,30 +65,30 @@ AddConsoleAliasW(LPCWSTR lpSource,
/* Capture the strings */
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpSource,
ConsoleAlias->SourceLength,
(PVOID*)&ConsoleAlias->Source);
ConsoleAliasRequest->SourceLength,
(PVOID*)&ConsoleAliasRequest->Source);
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpExeName,
ConsoleAlias->ExeLength,
(PVOID*)&ConsoleAlias->Exe);
ConsoleAliasRequest->ExeLength,
(PVOID*)&ConsoleAliasRequest->Exe);
if (lpTarget) /* The target can be optional */
{
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpTarget,
ConsoleAlias->TargetLength,
(PVOID*)&ConsoleAlias->Target);
ConsoleAliasRequest->TargetLength,
(PVOID*)&ConsoleAliasRequest->Target);
}
else
{
ConsoleAlias->Target = NULL;
ConsoleAliasRequest->Target = NULL;
}
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepAddAlias),
sizeof(CSRSS_CONSOLE_ALIAS));
sizeof(CONSOLE_ADDGETALIAS));
CsrFreeCaptureBuffer(CaptureBuffer);
@ -149,7 +149,7 @@ GetConsoleAliasW(LPWSTR lpSource,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_ALIAS ConsoleAlias = &ApiMessage.Data.ConsoleAlias;
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &ApiMessage.Data.ConsoleAliasRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DPRINT("GetConsoleAliasW entered with lpSource %S lpExeName %S\n", lpSource, lpExeName);
@ -161,16 +161,16 @@ GetConsoleAliasW(LPWSTR lpSource,
}
/* Determine the needed sizes */
ConsoleAlias->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR);
ConsoleAlias->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
ConsoleAliasRequest->SourceLength = (wcslen(lpSource ) + 1) * sizeof(WCHAR);
ConsoleAliasRequest->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
ConsoleAlias->Target = NULL;
ConsoleAlias->TargetLength = TargetBufferLength;
ConsoleAliasRequest->Target = NULL;
ConsoleAliasRequest->TargetLength = TargetBufferLength;
/* Allocate a Capture Buffer */
CaptureBuffer = CsrAllocateCaptureBuffer(3, ConsoleAlias->SourceLength +
ConsoleAlias->ExeLength +
ConsoleAlias->TargetLength);
CaptureBuffer = CsrAllocateCaptureBuffer(3, ConsoleAliasRequest->SourceLength +
ConsoleAliasRequest->ExeLength +
ConsoleAliasRequest->TargetLength);
if (!CaptureBuffer)
{
DPRINT1("CsrAllocateCaptureBuffer failed!\n");
@ -181,23 +181,23 @@ GetConsoleAliasW(LPWSTR lpSource,
/* Capture the strings */
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpSource,
ConsoleAlias->SourceLength,
(PVOID*)&ConsoleAlias->Source);
ConsoleAliasRequest->SourceLength,
(PVOID*)&ConsoleAliasRequest->Source);
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpExeName,
ConsoleAlias->ExeLength,
(PVOID*)&ConsoleAlias->Exe);
ConsoleAliasRequest->ExeLength,
(PVOID*)&ConsoleAliasRequest->Exe);
/* Allocate space for the target buffer */
CsrAllocateMessagePointer(CaptureBuffer,
ConsoleAlias->TargetLength,
(PVOID*)&ConsoleAlias->Target);
ConsoleAliasRequest->TargetLength,
(PVOID*)&ConsoleAliasRequest->Target);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAlias),
sizeof(CSRSS_CONSOLE_ALIAS));
sizeof(CONSOLE_ADDGETALIAS));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
CsrFreeCaptureBuffer(CaptureBuffer);
@ -206,15 +206,15 @@ GetConsoleAliasW(LPWSTR lpSource,
}
/* Copy the returned target string into the user buffer */
// wcscpy(lpTargetBuffer, ConsoleAlias->Target);
// wcscpy(lpTargetBuffer, ConsoleAliasRequest->Target);
memcpy(lpTargetBuffer,
ConsoleAlias->Target,
ConsoleAlias->TargetLength);
ConsoleAliasRequest->Target,
ConsoleAliasRequest->TargetLength);
/* Release the capture buffer and exits */
CsrFreeCaptureBuffer(CaptureBuffer);
return ConsoleAlias->TargetLength;
return ConsoleAliasRequest->TargetLength;
}
@ -296,24 +296,24 @@ GetConsoleAliasesW(LPWSTR AliasBuffer,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAliases = &ApiMessage.Data.GetAllConsoleAliases;
PCONSOLE_GETALLALIASES GetAllAliasesRequest = &ApiMessage.Data.GetAllAliasesRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DPRINT("GetConsoleAliasesW entered\n");
/* Determine the needed sizes */
GetAllConsoleAliases->ExeLength = GetConsoleAliasesLengthW(ExeName);
if (GetAllConsoleAliases->ExeLength == 0 ||
GetAllConsoleAliases->ExeLength > AliasBufferLength)
GetAllAliasesRequest->ExeLength = GetConsoleAliasesLengthW(ExeName);
if (GetAllAliasesRequest->ExeLength == 0 ||
GetAllAliasesRequest->ExeLength > AliasBufferLength)
{
return 0;
}
GetAllConsoleAliases->AliasesBufferLength = AliasBufferLength;
GetAllAliasesRequest->AliasesBufferLength = AliasBufferLength;
/* Allocate a Capture Buffer */
CaptureBuffer = CsrAllocateCaptureBuffer(2, GetAllConsoleAliases->ExeLength +
GetAllConsoleAliases->AliasesBufferLength);
CaptureBuffer = CsrAllocateCaptureBuffer(2, GetAllAliasesRequest->ExeLength +
GetAllAliasesRequest->AliasesBufferLength);
if (!CaptureBuffer)
{
DPRINT1("CsrAllocateCaptureBuffer failed!\n");
@ -324,17 +324,17 @@ GetConsoleAliasesW(LPWSTR AliasBuffer,
/* Capture the exe name and allocate space for the aliases buffer */
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)ExeName,
GetAllConsoleAliases->ExeLength,
(PVOID*)&GetAllConsoleAliases->ExeName);
GetAllAliasesRequest->ExeLength,
(PVOID*)&GetAllAliasesRequest->ExeName);
CsrAllocateMessagePointer(CaptureBuffer,
GetAllConsoleAliases->AliasesBufferLength,
(PVOID*)&GetAllConsoleAliases->AliasesBuffer);
GetAllAliasesRequest->AliasesBufferLength,
(PVOID*)&GetAllAliasesRequest->AliasesBuffer);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliases),
sizeof(CSRSS_GET_ALL_CONSOLE_ALIASES));
sizeof(CONSOLE_GETALLALIASES));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -342,15 +342,15 @@ GetConsoleAliasesW(LPWSTR AliasBuffer,
}
/* Copy the returned aliases string into the user buffer */
// wcscpy(AliasBuffer, GetAllConsoleAliases->AliasesBuffer);
// wcscpy(AliasBuffer, GetAllAliasesRequest->AliasesBuffer);
memcpy(AliasBuffer,
GetAllConsoleAliases->AliasesBuffer,
GetAllConsoleAliases->AliasesBufferLength);
GetAllAliasesRequest->AliasesBuffer,
GetAllAliasesRequest->AliasesBufferLength);
/* Release the capture buffer and exits */
CsrFreeCaptureBuffer(CaptureBuffer);
return GetAllConsoleAliases->AliasesBufferLength; // / sizeof(WCHAR); (original code)
return GetAllAliasesRequest->AliasesBufferLength; // / sizeof(WCHAR); (original code)
}
@ -396,7 +396,7 @@ GetConsoleAliasesLengthW(LPWSTR lpExeName)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength = &ApiMessage.Data.GetAllConsoleAliasesLength;
PCONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest = &ApiMessage.Data.GetAllAliasesLengthRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DPRINT("GetConsoleAliasesLengthW entered\n");
@ -407,11 +407,11 @@ GetConsoleAliasesLengthW(LPWSTR lpExeName)
return 0;
}
GetAllConsoleAliasesLength->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
GetAllConsoleAliasesLength->Length = 0;
GetAllAliasesLengthRequest->ExeLength = (wcslen(lpExeName) + 1) * sizeof(WCHAR);
GetAllAliasesLengthRequest->Length = 0;
/* Allocate a Capture Buffer */
CaptureBuffer = CsrAllocateCaptureBuffer(1, GetAllConsoleAliasesLength->ExeLength);
CaptureBuffer = CsrAllocateCaptureBuffer(1, GetAllAliasesLengthRequest->ExeLength);
if (!CaptureBuffer)
{
DPRINT1("CsrAllocateCaptureBuffer failed!\n");
@ -422,13 +422,13 @@ GetConsoleAliasesLengthW(LPWSTR lpExeName)
/* Capture the exe name */
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpExeName,
GetAllConsoleAliasesLength->ExeLength,
(PVOID)&GetAllConsoleAliasesLength->ExeName);
GetAllAliasesLengthRequest->ExeLength,
(PVOID)&GetAllAliasesLengthRequest->ExeName);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliasesLength),
sizeof(CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH));
sizeof(CONSOLE_GETALLALIASESLENGTH));
CsrFreeCaptureBuffer(CaptureBuffer);
@ -438,7 +438,7 @@ GetConsoleAliasesLengthW(LPWSTR lpExeName)
return 0;
}
return GetAllConsoleAliasesLength->Length;
return GetAllAliasesLengthRequest->Length;
}
@ -477,7 +477,7 @@ GetConsoleAliasExesW(LPWSTR lpExeNameBuffer,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes = &ApiMessage.Data.GetConsoleAliasesExes;
PCONSOLE_GETALIASESEXES GetAliasesExesRequest = &ApiMessage.Data.GetAliasesExesRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DPRINT("GetConsoleAliasExesW entered\n");
@ -491,17 +491,17 @@ GetConsoleAliasExesW(LPWSTR lpExeNameBuffer,
return 0;
}
GetConsoleAliasesExes->Length = ExeNameBufferLength;
GetAliasesExesRequest->Length = ExeNameBufferLength;
/* Allocate space for the exe name buffer */
CsrAllocateMessagePointer(CaptureBuffer,
ExeNameBufferLength,
(PVOID*)&GetConsoleAliasesExes->ExeNames);
(PVOID*)&GetAliasesExesRequest->ExeNames);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliasExes),
sizeof(CSRSS_GET_CONSOLE_ALIASES_EXES));
sizeof(CONSOLE_GETALIASESEXES));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
CsrFreeCaptureBuffer(CaptureBuffer);
@ -511,13 +511,13 @@ GetConsoleAliasExesW(LPWSTR lpExeNameBuffer,
/* Copy the returned target string into the user buffer */
memcpy(lpExeNameBuffer,
GetConsoleAliasesExes->ExeNames,
GetConsoleAliasesExes->Length);
GetAliasesExesRequest->ExeNames,
GetAliasesExesRequest->Length);
/* Release the capture buffer and exits */
CsrFreeCaptureBuffer(CaptureBuffer);
return GetConsoleAliasesExes->Length;
return GetAliasesExesRequest->Length;
}
@ -555,16 +555,16 @@ GetConsoleAliasExesLengthW(VOID)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength = &ApiMessage.Data.GetConsoleAliasesExesLength;
PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &ApiMessage.Data.GetAliasesExesLengthRequest;
DPRINT("GetConsoleAliasExesLengthW entered\n");
GetConsoleAliasesExesLength->Length = 0;
GetAliasesExesLengthRequest->Length = 0;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetAliasExesLength),
sizeof(CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH));
sizeof(CONSOLE_GETALIASESEXESLENGTH));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
@ -572,7 +572,7 @@ GetConsoleAliasExesLengthW(VOID)
return 0;
}
return GetConsoleAliasesExesLength->Length;
return GetAliasesExesLengthRequest->Length;
}

View file

@ -216,7 +216,7 @@ DuplicateConsoleHandle(HANDLE hConsole,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_DUPLICATE_HANDLE DuplicateHandleRequest = &ApiMessage.Data.DuplicateHandleRequest;
PCONSOLE_DUPLICATEHANDLE DuplicateHandleRequest = &ApiMessage.Data.DuplicateHandleRequest;
if ( (dwOptions & ~(DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS)) ||
(!(dwOptions & DUPLICATE_SAME_ACCESS) &&
@ -226,7 +226,7 @@ DuplicateConsoleHandle(HANDLE hConsole,
return INVALID_HANDLE_VALUE;
}
DuplicateHandleRequest->Handle = hConsole;
DuplicateHandleRequest->ConsoleHandle = hConsole;
DuplicateHandleRequest->Access = dwDesiredAccess;
DuplicateHandleRequest->Inheritable = bInheritHandle;
DuplicateHandleRequest->Options = dwOptions;
@ -234,14 +234,14 @@ DuplicateConsoleHandle(HANDLE hConsole,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepDuplicateHandle),
sizeof(CSRSS_DUPLICATE_HANDLE));
sizeof(CONSOLE_DUPLICATEHANDLE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return INVALID_HANDLE_VALUE;
}
return DuplicateHandleRequest->Handle;
return DuplicateHandleRequest->ConsoleHandle;
}
@ -301,27 +301,27 @@ GetConsoleFontSize(HANDLE hConsoleOutput,
*/
DWORD
WINAPI
GetConsoleHardwareState(HANDLE hConsole,
GetConsoleHardwareState(HANDLE hConsoleOutput,
DWORD Flags,
PDWORD State)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &ApiMessage.Data.ConsoleHardwareStateRequest;
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &ApiMessage.Data.HardwareStateRequest;
ConsoleHardwareStateRequest->ConsoleHandle = hConsole;
HardwareStateRequest->OutputHandle = hConsoleOutput;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetHardwareState),
sizeof(CSRSS_CONSOLE_HW_STATE));
sizeof(CONSOLE_GETSETHWSTATE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return FALSE;
}
*State = ConsoleHardwareStateRequest->State;
*State = HardwareStateRequest->State;
return TRUE;
}
@ -408,7 +408,7 @@ OpenConsoleW(LPCWSTR wsName,
{
NTSTATUS Status = STATUS_SUCCESS;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_OPEN_CONSOLE OpenConsoleRequest = &ApiMessage.Data.OpenConsoleRequest;
PCONSOLE_OPENCONSOLE OpenConsoleRequest = &ApiMessage.Data.OpenConsoleRequest;
CONSOLE_HANDLE_TYPE HandleType;
if (wsName && 0 == _wcsicmp(wsName, L"CONIN$"))
@ -445,14 +445,14 @@ OpenConsoleW(LPCWSTR wsName,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepOpenConsole),
sizeof(CSRSS_OPEN_CONSOLE));
sizeof(CONSOLE_OPENCONSOLE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return INVALID_HANDLE_VALUE;
}
return OpenConsoleRequest->Handle;
return OpenConsoleRequest->ConsoleHandle;
}
@ -511,21 +511,21 @@ SetConsoleFont(DWORD Unknown0,
*/
BOOL
WINAPI
SetConsoleHardwareState(HANDLE hConsole,
SetConsoleHardwareState(HANDLE hConsoleOutput,
DWORD Flags,
DWORD State)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &ApiMessage.Data.ConsoleHardwareStateRequest;
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &ApiMessage.Data.HardwareStateRequest;
ConsoleHardwareStateRequest->ConsoleHandle = hConsole;
ConsoleHardwareStateRequest->State = State;
HardwareStateRequest->OutputHandle = hConsoleOutput;
HardwareStateRequest->State = State;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetHardwareState),
sizeof(CSRSS_CONSOLE_HW_STATE));
sizeof(CONSOLE_GETSETHWSTATE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -628,12 +628,12 @@ VerifyConsoleIoHandle(HANDLE Handle)
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.VerifyHandleRequest.Handle = Handle;
ApiMessage.Data.VerifyHandleRequest.ConsoleHandle = Handle;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepVerifyIoHandle),
sizeof(CSRSS_VERIFY_HANDLE));
sizeof(CONSOLE_VERIFYHANDLE));
if (!NT_SUCCESS(Status))
{
BaseSetLastNTError(Status);
@ -686,12 +686,12 @@ CloseConsoleHandle(HANDLE Handle)
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.CloseHandleRequest.Handle = Handle;
ApiMessage.Data.CloseHandleRequest.ConsoleHandle = Handle;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepCloseHandle),
sizeof(CSRSS_CLOSE_HANDLE));
sizeof(CONSOLE_CLOSEHANDLE));
if (!NT_SUCCESS(Status))
{
BaseSetLastNTError(Status);
@ -795,7 +795,7 @@ AllocConsole(VOID)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_ALLOC_CONSOLE AllocConsoleRequest = &ApiMessage.Data.AllocConsoleRequest;
PCONSOLE_ALLOCCONSOLE AllocConsoleRequest = &ApiMessage.Data.AllocConsoleRequest;
STARTUPINFO si;
DPRINT1("AllocConsole called !!!!\n");
@ -816,7 +816,7 @@ AllocConsole(VOID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepAlloc),
sizeof(CSRSS_ALLOC_CONSOLE));
sizeof(CONSOLE_ALLOCCONSOLE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -856,7 +856,7 @@ FreeConsole(VOID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepFree),
sizeof(CSRSS_FREE_CONSOLE));
sizeof(CONSOLE_FREECONSOLE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -891,12 +891,12 @@ GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,
return FALSE;
}
ApiMessage.Data.ScreenBufferInfoRequest.ConsoleHandle = hConsoleOutput;
ApiMessage.Data.ScreenBufferInfoRequest.OutputHandle = hConsoleOutput;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetScreenBufferInfo),
sizeof(CSRSS_SCREEN_BUFFER_INFO));
sizeof(CONSOLE_GETSCREENBUFFERINFO));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -922,13 +922,13 @@ SetConsoleCursorPosition(HANDLE hConsoleOutput,
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.SetCursorPositionRequest.ConsoleHandle = hConsoleOutput;
ApiMessage.Data.SetCursorPositionRequest.OutputHandle = hConsoleOutput;
ApiMessage.Data.SetCursorPositionRequest.Position = dwCursorPosition;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCursorPosition),
sizeof(CSRSS_SET_CURSOR_POSITION));
sizeof(CONSOLE_SETCURSORPOSITION));
if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -951,14 +951,14 @@ GetConsoleMode(HANDLE hConsoleHandle,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_MODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest;
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest;
ConsoleModeRequest->ConsoleHandle = hConsoleHandle;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetMode),
sizeof(CSRSS_CONSOLE_MODE));
sizeof(CONSOLE_GETSETCONSOLEMODE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -990,12 +990,12 @@ GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,
return FALSE;
}
ApiMessage.Data.GetNumInputEventsRequest.ConsoleHandle = hConsoleInput;
ApiMessage.Data.GetNumInputEventsRequest.InputHandle = hConsoleInput;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetNumberOfInputEvents),
sizeof(CSRSS_GET_NUM_INPUT_EVENTS));
sizeof(CONSOLE_GETNUMINPUTEVENTS));
if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1047,12 +1047,12 @@ GetConsoleCursorInfo(HANDLE hConsoleOutput,
return FALSE;
}
ApiMessage.Data.CursorInfoRequest.ConsoleHandle = hConsoleOutput;
ApiMessage.Data.CursorInfoRequest.OutputHandle = hConsoleOutput;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCursorInfo),
sizeof(CSRSS_CURSOR_INFO));
sizeof(CONSOLE_GETSETCURSORINFO));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1092,7 +1092,7 @@ SetConsoleMode(HANDLE hConsoleHandle,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_MODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest;
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &ApiMessage.Data.ConsoleModeRequest;
ConsoleModeRequest->ConsoleHandle = hConsoleHandle;
ConsoleModeRequest->ConsoleMode = dwMode;
@ -1100,7 +1100,7 @@ SetConsoleMode(HANDLE hConsoleHandle,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetMode),
sizeof(CSRSS_CONSOLE_MODE));
sizeof(CONSOLE_GETSETCONSOLEMODE));
if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1128,7 +1128,7 @@ SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetActiveScreenBuffer),
sizeof(CSRSS_SET_SCREEN_BUFFER));
sizeof(CONSOLE_SETACTIVESCREENBUFFER));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1151,12 +1151,12 @@ FlushConsoleInputBuffer(HANDLE hConsoleInput)
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.FlushInputBufferRequest.ConsoleInput = hConsoleInput;
ApiMessage.Data.FlushInputBufferRequest.InputHandle = hConsoleInput;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepFlushInputBuffer),
sizeof(CSRSS_FLUSH_INPUT_BUFFER));
sizeof(CONSOLE_FLUSHINPUTBUFFER));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1180,13 +1180,13 @@ SetConsoleScreenBufferSize(HANDLE hConsoleOutput,
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.SetScreenBufferSize.OutputHandle = hConsoleOutput;
ApiMessage.Data.SetScreenBufferSize.Size = dwSize;
ApiMessage.Data.SetScreenBufferSizeRequest.OutputHandle = hConsoleOutput;
ApiMessage.Data.SetScreenBufferSizeRequest.Size = dwSize;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetScreenBufferSize),
sizeof(CSRSS_SET_SCREEN_BUFFER_SIZE));
sizeof(CONSOLE_SETSCREENBUFFERSIZE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1210,13 +1210,13 @@ SetConsoleCursorInfo(HANDLE hConsoleOutput,
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.CursorInfoRequest.ConsoleHandle = hConsoleOutput;
ApiMessage.Data.CursorInfoRequest.OutputHandle = hConsoleOutput;
ApiMessage.Data.CursorInfoRequest.Info = *lpConsoleCursorInfo;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCursorInfo),
sizeof(CSRSS_CURSOR_INFO));
sizeof(CONSOLE_GETSETCURSORINFO));
if(!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1238,29 +1238,29 @@ IntScrollConsoleScreenBuffer(HANDLE hConsoleOutput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest = &ApiMessage.Data.ScrollConsoleScreenBufferRequest;
PCONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest = &ApiMessage.Data.ScrollScreenBufferRequest;
ScrollConsoleScreenBufferRequest->ConsoleHandle = hConsoleOutput;
ScrollConsoleScreenBufferRequest->Unicode = bUnicode;
ScrollConsoleScreenBufferRequest->ScrollRectangle = *lpScrollRectangle;
ScrollScreenBufferRequest->OutputHandle = hConsoleOutput;
ScrollScreenBufferRequest->Unicode = bUnicode;
ScrollScreenBufferRequest->ScrollRectangle = *lpScrollRectangle;
if (lpClipRectangle != NULL)
{
ScrollConsoleScreenBufferRequest->UseClipRectangle = TRUE;
ScrollConsoleScreenBufferRequest->ClipRectangle = *lpClipRectangle;
ScrollScreenBufferRequest->UseClipRectangle = TRUE;
ScrollScreenBufferRequest->ClipRectangle = *lpClipRectangle;
}
else
{
ScrollConsoleScreenBufferRequest->UseClipRectangle = FALSE;
ScrollScreenBufferRequest->UseClipRectangle = FALSE;
}
ScrollConsoleScreenBufferRequest->DestinationOrigin = dwDestinationOrigin;
ScrollConsoleScreenBufferRequest->Fill = *lpFill;
ScrollScreenBufferRequest->DestinationOrigin = dwDestinationOrigin;
ScrollScreenBufferRequest->Fill = *lpFill;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepScrollScreenBuffer),
sizeof(CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER));
sizeof(CONSOLE_SCROLLSCREENBUFFER));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
@ -1346,13 +1346,13 @@ SetConsoleTextAttribute(HANDLE hConsoleOutput,
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.SetAttribRequest.ConsoleHandle = hConsoleOutput;
ApiMessage.Data.SetAttribRequest.Attrib = wAttributes;
ApiMessage.Data.SetTextAttribRequest.OutputHandle = hConsoleOutput;
ApiMessage.Data.SetTextAttribRequest.Attrib = wAttributes;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetTextAttribute),
sizeof(CSRSS_SET_ATTRIB));
sizeof(CONSOLE_SETTEXTATTRIB));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1478,13 +1478,13 @@ GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,
return FALSE;
}
ApiMessage.Data.GenerateCtrlEvent.Event = dwCtrlEvent;
ApiMessage.Data.GenerateCtrlEvent.ProcessGroup = dwProcessGroupId;
ApiMessage.Data.GenerateCtrlEventRequest.Event = dwCtrlEvent;
ApiMessage.Data.GenerateCtrlEventRequest.ProcessGroup = dwProcessGroupId;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGenerateCtrlEvent),
sizeof(CSRSS_GENERATE_CTRL_EVENT));
sizeof(CONSOLE_GENERATECTRLEVENT));
if(!NT_SUCCESS(Status) || !(NT_SUCCESS(Status = ApiMessage.Status)))
{
BaseSetLastNTError(Status);
@ -1500,7 +1500,7 @@ IntGetConsoleTitle(LPVOID lpConsoleTitle, DWORD nSize, BOOL bUnicode)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_TITLE TitleRequest = &ApiMessage.Data.TitleRequest;
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &ApiMessage.Data.TitleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
if (nSize == 0)
@ -1522,7 +1522,7 @@ IntGetConsoleTitle(LPVOID lpConsoleTitle, DWORD nSize, BOOL bUnicode)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetTitle),
sizeof(CSRSS_CONSOLE_TITLE));
sizeof(CONSOLE_GETSETCONSOLETITLE));
if (!NT_SUCCESS(Status) || !(NT_SUCCESS(Status = ApiMessage.Status)))
{
CsrFreeCaptureBuffer(CaptureBuffer);
@ -1597,7 +1597,7 @@ SetConsoleTitleW(LPCWSTR lpConsoleTitle)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_CONSOLE_TITLE TitleRequest = &ApiMessage.Data.TitleRequest;
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &ApiMessage.Data.TitleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
TitleRequest->Length = wcslen(lpConsoleTitle) * sizeof(WCHAR);
@ -1618,7 +1618,7 @@ SetConsoleTitleW(LPCWSTR lpConsoleTitle)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetTitle),
sizeof(CSRSS_CONSOLE_TITLE));
sizeof(CONSOLE_GETSETCONSOLETITLE));
CsrFreeCaptureBuffer(CaptureBuffer);
@ -1688,7 +1688,7 @@ CreateConsoleScreenBuffer(DWORD dwDesiredAccess,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepCreateScreenBuffer),
sizeof(CSRSS_CREATE_SCREEN_BUFFER));
sizeof(CONSOLE_CREATESCREENBUFFER));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1717,7 +1717,7 @@ GetConsoleCP(VOID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCP),
sizeof(CSRSS_CONSOLE_CP));
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1747,7 +1747,7 @@ SetConsoleCP(UINT wCodePageID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCP),
sizeof(CSRSS_CONSOLE_CP));
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1775,7 +1775,7 @@ GetConsoleOutputCP(VOID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCP),
sizeof(CSRSS_CONSOLE_CP));
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError (Status);
@ -1805,7 +1805,7 @@ SetConsoleOutputCP(UINT wCodePageID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetCP),
sizeof(CSRSS_CONSOLE_CP));
sizeof(CONSOLE_GETSETINPUTOUTPUTCP));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -1827,7 +1827,7 @@ GetConsoleProcessList(LPDWORD lpdwProcessList,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_PROCESS_LIST GetProcessListRequest = &ApiMessage.Data.GetProcessListRequest;
PCONSOLE_GETPROCESSLIST GetProcessListRequest = &ApiMessage.Data.GetProcessListRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG nProcesses;
@ -1854,7 +1854,7 @@ GetConsoleProcessList(LPDWORD lpdwProcessList,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetProcessList),
sizeof(CSRSS_GET_PROCESS_LIST));
sizeof(CONSOLE_GETPROCESSLIST));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError (Status);
@ -1895,14 +1895,14 @@ GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetSelectionInfo),
sizeof(CSRSS_GET_CONSOLE_SELECTION_INFO));
sizeof(CONSOLE_GETSELECTIONINFO));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return FALSE;
}
*lpConsoleSelectionInfo = ApiMessage.Data.GetConsoleSelectionInfo.Info;
*lpConsoleSelectionInfo = ApiMessage.Data.GetSelectionInfoRequest.Info;
return TRUE;
}
@ -1936,14 +1936,14 @@ GetConsoleWindow(VOID)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetConsoleWindow),
sizeof(CSRSS_GET_CONSOLE_WINDOW));
sizeof(CONSOLE_GETWINDOW));
if (!NT_SUCCESS(Status ) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
return (HWND) NULL;
}
return ApiMessage.Data.GetConsoleWindowRequest.WindowHandle;
return ApiMessage.Data.GetWindowRequest.WindowHandle;
}
@ -1959,12 +1959,12 @@ SetConsoleIcon(HICON hicon)
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
ApiMessage.Data.SetConsoleIconRequest.WindowIcon = hicon;
ApiMessage.Data.SetIconRequest.WindowIcon = hicon;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetIcon),
sizeof(CSRSS_SET_CONSOLE_ICON));
sizeof(CONSOLE_SETICON));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);

View file

@ -55,7 +55,7 @@ IntExpungeConsoleCommandHistory(LPCVOID lpExeName, BOOL bUnicode)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory = &ApiMessage.Data.ExpungeCommandHistory;
PCONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest = &ApiMessage.Data.ExpungeCommandHistoryRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
if (lpExeName == NULL || !(bUnicode ? *(PWCHAR)lpExeName : *(PCHAR)lpExeName))
@ -73,12 +73,12 @@ IntExpungeConsoleCommandHistory(LPCVOID lpExeName, BOOL bUnicode)
}
IntCaptureMessageString(CaptureBuffer, lpExeName, bUnicode,
&ExpungeCommandHistory->ExeName);
&ExpungeCommandHistoryRequest->ExeName);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepExpungeCommandHistory),
sizeof(CSRSS_EXPUNGE_COMMAND_HISTORY));
sizeof(CONSOLE_EXPUNGECOMMANDHISTORY));
CsrFreeCaptureBuffer(CaptureBuffer);
@ -97,7 +97,7 @@ IntGetConsoleCommandHistory(LPVOID lpHistory, DWORD cbHistory, LPCVOID lpExeName
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_COMMAND_HISTORY GetCommandHistory = &ApiMessage.Data.GetCommandHistory;
PCONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest = &ApiMessage.Data.GetCommandHistoryRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DWORD HistoryLength = cbHistory * (bUnicode ? 1 : sizeof(WCHAR));
@ -117,15 +117,15 @@ IntGetConsoleCommandHistory(LPVOID lpHistory, DWORD cbHistory, LPCVOID lpExeName
}
IntCaptureMessageString(CaptureBuffer, lpExeName, bUnicode,
&GetCommandHistory->ExeName);
GetCommandHistory->Length = HistoryLength;
&GetCommandHistoryRequest->ExeName);
GetCommandHistoryRequest->Length = HistoryLength;
CsrAllocateMessagePointer(CaptureBuffer, HistoryLength,
(PVOID*)&GetCommandHistory->History);
(PVOID*)&GetCommandHistoryRequest->History);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCommandHistory),
sizeof(CSRSS_GET_COMMAND_HISTORY));
sizeof(CONSOLE_GETCOMMANDHISTORY));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
CsrFreeCaptureBuffer(CaptureBuffer);
@ -136,14 +136,14 @@ IntGetConsoleCommandHistory(LPVOID lpHistory, DWORD cbHistory, LPCVOID lpExeName
if (bUnicode)
{
memcpy(lpHistory,
GetCommandHistory->History,
GetCommandHistory->Length);
GetCommandHistoryRequest->History,
GetCommandHistoryRequest->Length);
}
else
{
WideCharToMultiByte(CP_ACP, 0,
GetCommandHistory->History,
GetCommandHistory->Length / sizeof(WCHAR),
GetCommandHistoryRequest->History,
GetCommandHistoryRequest->Length / sizeof(WCHAR),
lpHistory,
cbHistory,
NULL, NULL);
@ -151,7 +151,7 @@ IntGetConsoleCommandHistory(LPVOID lpHistory, DWORD cbHistory, LPCVOID lpExeName
CsrFreeCaptureBuffer(CaptureBuffer);
return GetCommandHistory->Length;
return GetCommandHistoryRequest->Length;
}
@ -160,7 +160,7 @@ IntGetConsoleCommandHistoryLength(LPCVOID lpExeName, BOOL bUnicode)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength = &ApiMessage.Data.GetCommandHistoryLength;
PCONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest = &ApiMessage.Data.GetCommandHistoryLengthRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
if (lpExeName == NULL || !(bUnicode ? *(PWCHAR)lpExeName : *(PCHAR)lpExeName))
@ -178,12 +178,12 @@ IntGetConsoleCommandHistoryLength(LPCVOID lpExeName, BOOL bUnicode)
}
IntCaptureMessageString(CaptureBuffer, lpExeName, bUnicode,
&GetCommandHistoryLength->ExeName);
&GetCommandHistoryLengthRequest->ExeName);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetCommandHistoryLength),
sizeof(CSRSS_GET_COMMAND_HISTORY_LENGTH));
sizeof(CONSOLE_GETCOMMANDHISTORYLENGTH));
CsrFreeCaptureBuffer(CaptureBuffer);
@ -193,7 +193,7 @@ IntGetConsoleCommandHistoryLength(LPCVOID lpExeName, BOOL bUnicode)
return 0;
}
return GetCommandHistoryLength->Length;
return GetCommandHistoryLengthRequest->Length;
}
@ -204,7 +204,7 @@ IntSetConsoleNumberOfCommands(DWORD dwNumCommands,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands = &ApiMessage.Data.SetHistoryNumberCommands;
PCONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest = &ApiMessage.Data.SetHistoryNumberCommandsRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
if (lpExeName == NULL || !(bUnicode ? *(PWCHAR)lpExeName : *(PCHAR)lpExeName))
@ -222,13 +222,13 @@ IntSetConsoleNumberOfCommands(DWORD dwNumCommands,
}
IntCaptureMessageString(CaptureBuffer, lpExeName, bUnicode,
&SetHistoryNumberCommands->ExeName);
SetHistoryNumberCommands->NumCommands = dwNumCommands;
&SetHistoryNumberCommandsRequest->ExeName);
SetHistoryNumberCommandsRequest->NumCommands = dwNumCommands;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetNumberOfCommands),
sizeof(CSRSS_SET_HISTORY_NUMBER_COMMANDS));
sizeof(CONSOLE_SETHISTORYNUMBERCOMMANDS));
CsrFreeCaptureBuffer(CaptureBuffer);

View file

@ -35,7 +35,7 @@ IntReadConsole(HANDLE hConsoleInput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_READ_CONSOLE ReadConsoleRequest = &ApiMessage.Data.ReadConsoleRequest;
PCONSOLE_READCONSOLE ReadConsoleRequest = &ApiMessage.Data.ReadConsoleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG CharSize;
@ -58,7 +58,7 @@ IntReadConsole(HANDLE hConsoleInput,
(PVOID*)&ReadConsoleRequest->Buffer);
/* Set up the data to send to the Console Server */
ReadConsoleRequest->ConsoleHandle = hConsoleInput;
ReadConsoleRequest->InputHandle = hConsoleInput;
ReadConsoleRequest->Unicode = bUnicode;
ReadConsoleRequest->NrCharactersToRead = (WORD)nNumberOfCharsToRead;
ReadConsoleRequest->NrCharactersRead = 0;
@ -76,7 +76,7 @@ IntReadConsole(HANDLE hConsoleInput,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepReadConsole),
sizeof(CSRSS_READ_CONSOLE));
sizeof(CONSOLE_READCONSOLE));
/* Check for success */
if (NT_SUCCESS(Status) || NT_SUCCESS(Status = ApiMessage.Status))
@ -122,7 +122,7 @@ IntGetConsoleInput(HANDLE hConsoleInput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest = &ApiMessage.Data.GetConsoleInputRequest;
PCONSOLE_GETINPUT GetInputRequest = &ApiMessage.Data.GetInputRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG Size;
@ -148,36 +148,36 @@ IntGetConsoleInput(HANDLE hConsoleInput,
/* Allocate space in the Buffer */
CsrAllocateMessagePointer(CaptureBuffer,
Size,
(PVOID*)&GetConsoleInputRequest->InputRecord);
(PVOID*)&GetInputRequest->InputRecord);
/* Set up the data to send to the Console Server */
GetConsoleInputRequest->ConsoleHandle = hConsoleInput;
GetConsoleInputRequest->Unicode = bUnicode;
GetConsoleInputRequest->bRead = bRead;
GetConsoleInputRequest->InputsRead = 0;
GetConsoleInputRequest->Length = nLength;
GetInputRequest->InputHandle = hConsoleInput;
GetInputRequest->Unicode = bUnicode;
GetInputRequest->bRead = bRead;
GetInputRequest->InputsRead = 0;
GetInputRequest->Length = nLength;
/* Call the server */
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetConsoleInput),
sizeof(CSRSS_GET_CONSOLE_INPUT));
sizeof(CONSOLE_GETINPUT));
DPRINT("Server returned: %x\n", ApiMessage.Status);
/* Check for success */
if (NT_SUCCESS(Status) || NT_SUCCESS(Status = ApiMessage.Status))
{
/* Return the number of events read */
DPRINT("Events read: %lx\n", GetConsoleInputRequest->InputsRead);
DPRINT("Events read: %lx\n", GetInputRequest->InputsRead);
if (lpNumberOfEventsRead != NULL)
*lpNumberOfEventsRead = GetConsoleInputRequest->InputsRead;
*lpNumberOfEventsRead = GetInputRequest->InputsRead;
/* Copy into the buffer */
DPRINT("Copying to buffer\n");
RtlCopyMemory(lpBuffer,
GetConsoleInputRequest->InputRecord,
sizeof(INPUT_RECORD) * GetConsoleInputRequest->InputsRead);
GetInputRequest->InputRecord,
sizeof(INPUT_RECORD) * GetInputRequest->InputsRead);
}
else
{
@ -189,7 +189,7 @@ IntGetConsoleInput(HANDLE hConsoleInput,
/*********
// BaseSetLastNTError(Status); ????
if (GetConsoleInputRequest->InputsRead == 0)
if (GetInputRequest->InputsRead == 0)
{
/\* we couldn't read a single record, fail *\/
BaseSetLastNTError(Status);
@ -207,7 +207,7 @@ IntGetConsoleInput(HANDLE hConsoleInput,
CsrFreeCaptureBuffer(CaptureBuffer);
/* Return TRUE or FALSE */
return (GetConsoleInputRequest->InputsRead > 0);
return (GetInputRequest->InputsRead > 0);
// return NT_SUCCESS(ApiMessage.Status);
}
@ -222,7 +222,7 @@ IntReadConsoleOutput(HANDLE hConsoleOutput,
BOOL bUnicode)
{
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest = &ApiMessage.Data.ReadConsoleOutputRequest;
PCONSOLE_READOUTPUT ReadOutputRequest = &ApiMessage.Data.ReadOutputRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DWORD Size, SizeX, SizeY;
@ -248,20 +248,20 @@ IntReadConsoleOutput(HANDLE hConsoleOutput,
/* Allocate space in the Buffer */
CsrAllocateMessagePointer(CaptureBuffer,
Size,
(PVOID*)&ReadConsoleOutputRequest->CharInfo);
(PVOID*)&ReadOutputRequest->CharInfo);
/* Set up the data to send to the Console Server */
ReadConsoleOutputRequest->ConsoleHandle = hConsoleOutput;
ReadConsoleOutputRequest->Unicode = bUnicode;
ReadConsoleOutputRequest->BufferSize = dwBufferSize;
ReadConsoleOutputRequest->BufferCoord = dwBufferCoord;
ReadConsoleOutputRequest->ReadRegion = *lpReadRegion;
ReadOutputRequest->OutputHandle = hConsoleOutput;
ReadOutputRequest->Unicode = bUnicode;
ReadOutputRequest->BufferSize = dwBufferSize;
ReadOutputRequest->BufferCoord = dwBufferCoord;
ReadOutputRequest->ReadRegion = *lpReadRegion;
/* Call the server */
CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepReadConsoleOutput),
sizeof(CSRSS_READ_CONSOLE_OUTPUT));
sizeof(CONSOLE_READOUTPUT));
DPRINT("Server returned: %x\n", ApiMessage.Status);
/* Check for success*/
@ -269,12 +269,12 @@ IntReadConsoleOutput(HANDLE hConsoleOutput,
{
/* Copy into the buffer */
DPRINT("Copying to buffer\n");
SizeX = ReadConsoleOutputRequest->ReadRegion.Right -
ReadConsoleOutputRequest->ReadRegion.Left + 1;
SizeY = ReadConsoleOutputRequest->ReadRegion.Bottom -
ReadConsoleOutputRequest->ReadRegion.Top + 1;
SizeX = ReadOutputRequest->ReadRegion.Right -
ReadOutputRequest->ReadRegion.Left + 1;
SizeY = ReadOutputRequest->ReadRegion.Bottom -
ReadOutputRequest->ReadRegion.Top + 1;
RtlCopyMemory(lpBuffer,
ReadConsoleOutputRequest->CharInfo,
ReadOutputRequest->CharInfo,
sizeof(CHAR_INFO) * SizeX * SizeY);
}
else
@ -284,8 +284,8 @@ IntReadConsoleOutput(HANDLE hConsoleOutput,
}
/* Return the read region */
DPRINT("read region: %lx\n", ReadConsoleOutputRequest->ReadRegion);
*lpReadRegion = ReadConsoleOutputRequest->ReadRegion;
DPRINT("read region: %lx\n", ReadOutputRequest->ReadRegion);
*lpReadRegion = ReadOutputRequest->ReadRegion;
/* Release the capture buffer */
CsrFreeCaptureBuffer(CaptureBuffer);
@ -306,7 +306,7 @@ IntReadConsoleOutputCode(HANDLE hConsoleOutput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_READ_CONSOLE_OUTPUT_CODE ReadConsoleOutputCodeRequest = &ApiMessage.Data.ReadConsoleOutputCodeRequest;
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &ApiMessage.Data.ReadOutputCodeRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG SizeBytes, CodeSize;
DWORD /*CodesRead = 0,*/ BytesRead;
@ -344,22 +344,22 @@ IntReadConsoleOutputCode(HANDLE hConsoleOutput,
/* Allocate space in the Buffer */
CsrAllocateMessagePointer(CaptureBuffer,
SizeBytes,
(PVOID*)&ReadConsoleOutputCodeRequest->pCode.pCode);
(PVOID*)&ReadOutputCodeRequest->pCode.pCode);
/* Start reading */
ReadConsoleOutputCodeRequest->ConsoleHandle = hConsoleOutput;
ReadConsoleOutputCodeRequest->CodeType = CodeType;
ReadConsoleOutputCodeRequest->ReadCoord = dwReadCoord;
ReadOutputCodeRequest->OutputHandle = hConsoleOutput;
ReadOutputCodeRequest->CodeType = CodeType;
ReadOutputCodeRequest->ReadCoord = dwReadCoord;
// while (nLength > 0)
{
ReadConsoleOutputCodeRequest->NumCodesToRead = nLength;
// SizeBytes = ReadConsoleOutputCodeRequest->NumCodesToRead * CodeSize;
ReadOutputCodeRequest->NumCodesToRead = nLength;
// SizeBytes = ReadOutputCodeRequest->NumCodesToRead * CodeSize;
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepReadConsoleOutputString),
sizeof(CSRSS_READ_CONSOLE_OUTPUT_CODE));
sizeof(CONSOLE_READOUTPUTCODE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -367,17 +367,17 @@ IntReadConsoleOutputCode(HANDLE hConsoleOutput,
return FALSE;
}
BytesRead = ReadConsoleOutputCodeRequest->CodesRead * CodeSize;
memcpy(pCode, ReadConsoleOutputCodeRequest->pCode.pCode, BytesRead);
BytesRead = ReadOutputCodeRequest->CodesRead * CodeSize;
memcpy(pCode, ReadOutputCodeRequest->pCode.pCode, BytesRead);
// pCode = (PVOID)((ULONG_PTR)pCode + /*(ULONG_PTR)*/BytesRead);
// nLength -= ReadConsoleOutputCodeRequest->CodesRead;
// CodesRead += ReadConsoleOutputCodeRequest->CodesRead;
// nLength -= ReadOutputCodeRequest->CodesRead;
// CodesRead += ReadOutputCodeRequest->CodesRead;
ReadConsoleOutputCodeRequest->ReadCoord = ReadConsoleOutputCodeRequest->EndCoord;
ReadOutputCodeRequest->ReadCoord = ReadOutputCodeRequest->EndCoord;
}
if (lpNumberOfCodesRead != NULL)
*lpNumberOfCodesRead = /*CodesRead;*/ ReadConsoleOutputCodeRequest->CodesRead;
*lpNumberOfCodesRead = /*CodesRead;*/ ReadOutputCodeRequest->CodesRead;
CsrFreeCaptureBuffer(CaptureBuffer);
@ -400,7 +400,7 @@ IntWriteConsole(HANDLE hConsoleOutput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_WRITE_CONSOLE WriteConsoleRequest = &ApiMessage.Data.WriteConsoleRequest;
PCONSOLE_WRITECONSOLE WriteConsoleRequest = &ApiMessage.Data.WriteConsoleRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
// USHORT nChars;
ULONG /* SizeBytes, */ CharSize;
@ -427,7 +427,7 @@ IntWriteConsole(HANDLE hConsoleOutput,
/* Start writing */
WriteConsoleRequest->NrCharactersToWrite = nNumberOfCharsToWrite;
WriteConsoleRequest->ConsoleHandle = hConsoleOutput;
WriteConsoleRequest->OutputHandle = hConsoleOutput;
WriteConsoleRequest->Unicode = bUnicode;
// while (nNumberOfCharsToWrite > 0)
@ -443,7 +443,7 @@ IntWriteConsole(HANDLE hConsoleOutput,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsole),
sizeof(CSRSS_WRITE_CONSOLE));
sizeof(CONSOLE_WRITECONSOLE));
/** FIXME: Added in 47359 for pausing
if (Status == STATUS_PENDING)
@ -484,7 +484,7 @@ IntWriteConsoleInput(HANDLE hConsoleInput,
BOOL bUnicode)
{
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest = &ApiMessage.Data.WriteConsoleInputRequest;
PCONSOLE_WRITEINPUT WriteInputRequest = &ApiMessage.Data.WriteInputRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
DWORD Size;
@ -511,28 +511,28 @@ IntWriteConsoleInput(HANDLE hConsoleInput,
CsrCaptureMessageBuffer(CaptureBuffer,
lpBuffer,
Size,
(PVOID*)&WriteConsoleInputRequest->InputRecord);
(PVOID*)&WriteInputRequest->InputRecord);
/* Set up the data to send to the Console Server */
WriteConsoleInputRequest->ConsoleHandle = hConsoleInput;
WriteConsoleInputRequest->Unicode = bUnicode;
WriteConsoleInputRequest->Length = nLength;
WriteInputRequest->InputHandle = hConsoleInput;
WriteInputRequest->Unicode = bUnicode;
WriteInputRequest->Length = nLength;
/* Call the server */
CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleInput),
sizeof(CSRSS_WRITE_CONSOLE_INPUT));
sizeof(CONSOLE_WRITEINPUT));
DPRINT("Server returned: %x\n", ApiMessage.Status);
/* Check for success*/
if (NT_SUCCESS(ApiMessage.Status))
{
/* Return the number of events read */
DPRINT("Events read: %lx\n", WriteConsoleInputRequest->Length);
DPRINT("Events read: %lx\n", WriteInputRequest->Length);
if (lpNumberOfEventsWritten != NULL)
*lpNumberOfEventsWritten = WriteConsoleInputRequest->Length;
*lpNumberOfEventsWritten = WriteInputRequest->Length;
}
else
{
@ -561,7 +561,7 @@ IntWriteConsoleOutput(HANDLE hConsoleOutput,
BOOL bUnicode)
{
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest = &ApiMessage.Data.WriteConsoleOutputRequest;
PCONSOLE_WRITEOUTPUT WriteOutputRequest = &ApiMessage.Data.WriteOutputRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG Size;
@ -588,20 +588,20 @@ IntWriteConsoleOutput(HANDLE hConsoleOutput,
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)lpBuffer,
Size,
(PVOID*)&WriteConsoleOutputRequest->CharInfo);
(PVOID*)&WriteOutputRequest->CharInfo);
/* Set up the data to send to the Console Server */
WriteConsoleOutputRequest->ConsoleHandle = hConsoleOutput;
WriteConsoleOutputRequest->Unicode = bUnicode;
WriteConsoleOutputRequest->BufferSize = dwBufferSize;
WriteConsoleOutputRequest->BufferCoord = dwBufferCoord;
WriteConsoleOutputRequest->WriteRegion = *lpWriteRegion;
WriteOutputRequest->OutputHandle = hConsoleOutput;
WriteOutputRequest->Unicode = bUnicode;
WriteOutputRequest->BufferSize = dwBufferSize;
WriteOutputRequest->BufferCoord = dwBufferCoord;
WriteOutputRequest->WriteRegion = *lpWriteRegion;
/* Call the server */
CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleOutput),
sizeof(CSRSS_WRITE_CONSOLE_OUTPUT));
sizeof(CONSOLE_WRITEOUTPUT));
DPRINT("Server returned: %x\n", ApiMessage.Status);
/* Check for success*/
@ -612,8 +612,8 @@ IntWriteConsoleOutput(HANDLE hConsoleOutput,
}
/* Return the read region */
DPRINT("read region: %lx\n", WriteConsoleOutputRequest->WriteRegion);
*lpWriteRegion = WriteConsoleOutputRequest->WriteRegion;
DPRINT("read region: %lx\n", WriteOutputRequest->WriteRegion);
*lpWriteRegion = WriteOutputRequest->WriteRegion;
/* Release the capture buffer */
CsrFreeCaptureBuffer(CaptureBuffer);
@ -634,7 +634,7 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_WRITE_CONSOLE_OUTPUT_CODE WriteConsoleOutputCodeRequest = &ApiMessage.Data.WriteConsoleOutputCodeRequest;
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &ApiMessage.Data.WriteOutputCodeRequest;
PCSR_CAPTURE_BUFFER CaptureBuffer;
ULONG CodeSize; //, nChars;
// ULONG SizeBytes;
@ -664,10 +664,10 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
WriteConsoleOutputCodeRequest->BufferSize = nLength * CodeSize;
WriteOutputCodeRequest->BufferSize = nLength * CodeSize;
/* Allocate a Capture Buffer */
CaptureBuffer = CsrAllocateCaptureBuffer(1, WriteConsoleOutputCodeRequest->BufferSize);
CaptureBuffer = CsrAllocateCaptureBuffer(1, WriteOutputCodeRequest->BufferSize);
if (CaptureBuffer == NULL)
{
DPRINT1("CsrAllocateCaptureBuffer failed!\n");
@ -679,18 +679,18 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
/\* Allocate space in the Buffer *\/
CsrAllocateMessagePointer(CaptureBuffer,
SizeBytes,
(PVOID*)&WriteConsoleOutputCodeRequest->pCode.pCode);
(PVOID*)&WriteOutputCodeRequest->pCode.pCode);
*/
/* Capture the buffer to write */
CsrCaptureMessageBuffer(CaptureBuffer,
(PVOID)pCode,
WriteConsoleOutputCodeRequest->BufferSize,
(PVOID*)&WriteConsoleOutputCodeRequest->pCode.pCode);
WriteOutputCodeRequest->BufferSize,
(PVOID*)&WriteOutputCodeRequest->pCode.pCode);
/* Start writing */
WriteConsoleOutputCodeRequest->ConsoleHandle = hConsoleOutput;
WriteConsoleOutputCodeRequest->CodeType = CodeType;
WriteConsoleOutputCodeRequest->Coord = dwWriteCoord;
WriteOutputCodeRequest->OutputHandle = hConsoleOutput;
WriteOutputCodeRequest->CodeType = CodeType;
WriteOutputCodeRequest->Coord = dwWriteCoord;
/**
** TODO: HACK: Surely it has to go into CONSRV !!
@ -699,15 +699,15 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
{
// DWORD BytesWrite;
WriteConsoleOutputCodeRequest->Length = nLength; // (WORD)min(nLength, nChars);
// BytesWrite = WriteConsoleOutputCodeRequest->Length * CodeSize;
WriteOutputCodeRequest->Length = nLength; // (WORD)min(nLength, nChars);
// BytesWrite = WriteOutputCodeRequest->Length * CodeSize;
// memcpy(WriteConsoleOutputCodeRequest->pCode.pCode, pCode, BytesWrite);
// memcpy(WriteOutputCodeRequest->pCode.pCode, pCode, BytesWrite);
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
CaptureBuffer,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepWriteConsoleOutputString),
sizeof(CSRSS_WRITE_CONSOLE_OUTPUT_CODE));
sizeof(CONSOLE_WRITEOUTPUTCODE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
CsrFreeCaptureBuffer(CaptureBuffer);
@ -715,17 +715,17 @@ IntWriteConsoleOutputCode(HANDLE hConsoleOutput,
return FALSE;
}
// nLength -= WriteConsoleOutputCodeRequest->NrCharactersWritten;
// pCode = (PVOID)((ULONG_PTR)pCode + /*(ULONG_PTR)(*/WriteConsoleOutputCodeRequest->NrCharactersWritten * CodeSize/*)*/);
// Written += WriteConsoleOutputCodeRequest->NrCharactersWritten;
// nLength -= WriteOutputCodeRequest->NrCharactersWritten;
// pCode = (PVOID)((ULONG_PTR)pCode + /*(ULONG_PTR)(*/WriteOutputCodeRequest->NrCharactersWritten * CodeSize/*)*/);
// Written += WriteOutputCodeRequest->NrCharactersWritten;
WriteConsoleOutputCodeRequest->Coord = WriteConsoleOutputCodeRequest->EndCoord;
WriteOutputCodeRequest->Coord = WriteOutputCodeRequest->EndCoord;
}
if (lpNumberOfCodesWritten != NULL)
// *lpNumberOfCodesWritten = Written;
// *lpNumberOfCodesWritten = WriteConsoleOutputCodeRequest->NrCharactersWritten;
*lpNumberOfCodesWritten = WriteConsoleOutputCodeRequest->Length;
// *lpNumberOfCodesWritten = WriteOutputCodeRequest->NrCharactersWritten;
*lpNumberOfCodesWritten = WriteOutputCodeRequest->Length;
CsrFreeCaptureBuffer(CaptureBuffer);
@ -744,9 +744,9 @@ IntFillConsoleOutputCode(HANDLE hConsoleOutput,
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_FILL_OUTPUT FillOutputRequest = &ApiMessage.Data.FillOutputRequest;
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &ApiMessage.Data.FillOutputRequest;
FillOutputRequest->ConsoleHandle = hConsoleOutput;
FillOutputRequest->OutputHandle = hConsoleOutput;
FillOutputRequest->CodeType = CodeType;
switch (CodeType)
@ -774,7 +774,7 @@ IntFillConsoleOutputCode(HANDLE hConsoleOutput,
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepFillConsoleOutput),
sizeof(CSRSS_FILL_OUTPUT));
sizeof(CONSOLE_FILLOUTPUTCODE));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);

View file

@ -29,7 +29,7 @@ GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_HISTORY_INFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
{
@ -40,7 +40,7 @@ GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetHistory),
sizeof(CSRSS_HISTORY_INFO));
sizeof(CONSOLE_GETSETHISTORYINFO));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);
@ -66,7 +66,7 @@ SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
{
NTSTATUS Status;
CONSOLE_API_MESSAGE ApiMessage;
PCSRSS_HISTORY_INFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
{
@ -81,7 +81,7 @@ SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
NULL,
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetHistory),
sizeof(CSRSS_HISTORY_INFO));
sizeof(CONSOLE_GETSETHISTORYINFO));
if (!NT_SUCCESS(Status) || !NT_SUCCESS(Status = ApiMessage.Status))
{
BaseSetLastNTError(Status);

View file

@ -116,7 +116,7 @@ typedef struct _CONSOLE_CONNECTION_INFO
{
BOOL ConsoleNeeded; // Used for GUI apps only.
/* Copied from CSRSS_ALLOC_CONSOLE */
/* Copied from CONSOLE_ALLOCCONSOLE */
INT ShowCmd;
HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
HANDLE InputHandle;
@ -136,22 +136,24 @@ typedef struct
USHORT nMaxIds;
ULONG nProcessIdsTotal;
PDWORD pProcessIds;
} CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
} CONSOLE_GETPROCESSLIST, *PCONSOLE_GETPROCESSLIST;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
BOOL Unicode;
ULONG NrCharactersToWrite;
ULONG NrCharactersWritten;
ULONG BufferSize;
PVOID Buffer;
} CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
} CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE InputHandle;
BOOL Unicode;
WORD NrCharactersToRead;
WORD NrCharactersRead;
@ -162,7 +164,7 @@ typedef struct
ULONG BufferSize;
PVOID Buffer;
} CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
} CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
typedef struct
{
@ -173,87 +175,90 @@ typedef struct
HANDLE ErrorHandle;
HANDLE InputWaitHandle;
LPTHREAD_START_ROUTINE CtrlDispatcher;
} CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;
} CONSOLE_ALLOCCONSOLE, *PCONSOLE_ALLOCCONSOLE;
typedef struct
{
ULONG Dummy;
} CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;
} CONSOLE_FREECONSOLE, *PCONSOLE_FREECONSOLE;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
CONSOLE_SCREEN_BUFFER_INFO Info;
} CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;
} CONSOLE_GETSCREENBUFFERINFO, *PCONSOLE_GETSCREENBUFFERINFO;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
COORD Position;
} CSRSS_SET_CURSOR_POSITION, *PCSRSS_SET_CURSOR_POSITION;
} CONSOLE_SETCURSORPOSITION, *PCONSOLE_SETCURSORPOSITION;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
CONSOLE_CURSOR_INFO Info;
} CSRSS_CURSOR_INFO, *PCSRSS_CURSOR_INFO;
} CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
WORD Attrib;
} CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
} CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE ConsoleHandle; /* A valid input or output console handle */
DWORD ConsoleMode;
} CSRSS_CONSOLE_MODE, *PCSRSS_CONSOLE_MODE;
} CONSOLE_GETSETCONSOLEMODE, *PCONSOLE_GETSETCONSOLEMODE;
typedef struct
{
HANDLE OutputHandle; /* Handle to newly created screen buffer */
DWORD Access;
DWORD ShareMode;
BOOL Inheritable;
HANDLE OutputHandle; /* handle to newly created screen buffer */
} CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
} CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER;
typedef struct
{
HANDLE OutputHandle; /* handle to screen buffer to switch to */
} CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
HANDLE OutputHandle; /* Handle to screen buffer to switch to */
} CONSOLE_SETACTIVESCREENBUFFER, *PCONSOLE_SETACTIVESCREENBUFFER;
typedef struct
{
DWORD Length;
PWCHAR Title;
} CSRSS_CONSOLE_TITLE, *PCSRSS_CONSOLE_TITLE;
} CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
BOOL Unicode;
COORD BufferSize;
COORD BufferCoord;
SMALL_RECT WriteRegion;
CHAR_INFO* CharInfo;
} CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
} CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
typedef struct
{
HANDLE ConsoleInput;
} CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
HANDLE InputHandle;
} CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
BOOL Unicode;
SMALL_RECT ScrollRectangle;
BOOL UseClipRectangle;
SMALL_RECT ClipRectangle;
COORD DestinationOrigin;
CHAR_INFO Fill;
} CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
} CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
/*
@ -270,7 +275,7 @@ typedef enum _CODE_TYPE
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
DWORD NumCodesToRead;
COORD ReadCoord;
@ -286,12 +291,11 @@ typedef struct
PWCHAR UnicodeChar;
PWORD Attribute;
} pCode; // Either a pointer to a character or to an attribute.
} CSRSS_READ_CONSOLE_OUTPUT_CODE, *PCSRSS_READ_CONSOLE_OUTPUT_CODE;
} CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
typedef struct
{
HANDLE ConsoleHandle;
USHORT CodeType;
HANDLE OutputHandle;
ULONG BufferSize;
WORD Length;
@ -300,6 +304,7 @@ typedef struct
ULONG NrCharactersWritten;
USHORT CodeType;
union
{
// PVOID String;
@ -308,11 +313,11 @@ typedef struct
PWCHAR UnicodeChar;
PWORD Attribute;
} pCode; // Either a pointer to a character or to an attribute.
} CSRSS_WRITE_CONSOLE_OUTPUT_CODE, *PCSRSS_WRITE_CONSOLE_OUTPUT_CODE;
} CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
CODE_TYPE CodeType;
union
@ -326,11 +331,11 @@ typedef struct
ULONG Length;
ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
} CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;
} CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE InputHandle;
BOOL Unicode;
BOOL bRead; // TRUE --> Read ; FALSE --> Peek
@ -338,43 +343,44 @@ typedef struct
ULONG Length;
PINPUT_RECORD InputRecord;
} CSRSS_GET_CONSOLE_INPUT, *PCSRSS_GET_CONSOLE_INPUT;
} CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
BOOL Unicode;
COORD BufferSize;
COORD BufferCoord;
SMALL_RECT ReadRegion;
CHAR_INFO* CharInfo;
} CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
} CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
typedef struct
{
HANDLE InputHandle;
BOOL Unicode;
DWORD Length;
INPUT_RECORD* InputRecord;
} CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
typedef struct
{
HANDLE ConsoleHandle;
BOOL Unicode;
DWORD Length;
INPUT_RECORD* InputRecord;
} CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
} CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
typedef struct
{
HANDLE Handle;
} CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
HANDLE ConsoleHandle;
} CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
typedef struct
{
HANDLE Handle;
} CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
typedef struct
{
HANDLE Handle;
HANDLE ConsoleHandle;
DWORD Access;
BOOL Inheritable;
DWORD Options;
} CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
} CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
/*
* Type of handles.
@ -387,17 +393,19 @@ typedef enum _CONSOLE_HANDLE_TYPE
typedef struct
{
HANDLE Handle;
HANDLE ConsoleHandle;
CONSOLE_HANDLE_TYPE HandleType;
DWORD Access;
BOOL Inheritable;
DWORD ShareMode;
} CSRSS_OPEN_CONSOLE, *PCSRSS_OPEN_CONSOLE;
} CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
#if 0
typedef struct
{
HANDLE InputWaitHandle;
} CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
#endif
/*
@ -408,25 +416,19 @@ typedef struct
typedef struct
{
HANDLE ConsoleHandle;
HANDLE OutputHandle;
DWORD State;
} CSRSS_CONSOLE_HW_STATE, *PCSRSS_CONSOLE_HW_STATE;
} CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE;
typedef struct
{
HWND WindowHandle;
} CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
} CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
typedef struct
{
HICON WindowIcon;
} CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
} CONSOLE_SETICON, *PCONSOLE_SETICON;
@ -438,7 +440,7 @@ typedef struct
LPWSTR Source;
LPWSTR Target;
LPWSTR Exe;
} CSRSS_CONSOLE_ALIAS, *PCSRSS_CONSOLE_ALIAS;
} CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
typedef struct
{
@ -446,28 +448,25 @@ typedef struct
DWORD AliasesBufferLength;
LPWSTR ExeName;
LPWSTR AliasesBuffer;
} CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIASES;
} CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
typedef struct
{
DWORD Length;
DWORD ExeLength;
LPWSTR ExeName;
} CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH, *PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH;
} CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
typedef struct
{
DWORD Length;
LPWSTR ExeNames;
} CSRSS_GET_CONSOLE_ALIASES_EXES, *PCSRSS_GET_CONSOLE_ALIASES_EXES;
} CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
typedef struct
{
DWORD Length;
} CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
} CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
@ -476,38 +475,31 @@ typedef struct
UNICODE_STRING ExeName;
PWCHAR History;
DWORD Length;
} CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
} CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
typedef struct
{
UNICODE_STRING ExeName;
DWORD Length;
} CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
} CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
typedef struct
{
UNICODE_STRING ExeName;
} CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
} CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
typedef struct
{
UNICODE_STRING ExeName;
DWORD NumCommands;
} CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
} CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
typedef struct
{
UINT HistoryBufferSize;
UINT NumberOfHistoryBuffers;
DWORD dwFlags;
} CSRSS_HISTORY_INFO, *PCSRSS_HISTORY_INFO;
} CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
@ -515,30 +507,30 @@ typedef struct
{
DWORD Event;
DWORD ProcessGroup;
} CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
} CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE InputHandle;
DWORD NumInputEvents;
} CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
} CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
typedef struct
{
HANDLE OutputHandle;
COORD Size;
} CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
} CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
typedef struct
{
CONSOLE_SELECTION_INFO Info;
} CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
} CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
typedef struct
{
BOOL InputCP; // TRUE : Input Code Page ; FALSE : Output Code Page
UINT CodePage;
} CSRSS_CONSOLE_CP, *PCSRSS_CONSOLE_CP;
} CONSOLE_GETSETINPUTOUTPUTCP, *PCONSOLE_GETSETINPUTOUTPUTCP;
typedef struct _CONSOLE_API_MESSAGE
{
@ -550,75 +542,77 @@ typedef struct _CONSOLE_API_MESSAGE
ULONG Reserved;
union
{
CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
CSRSS_FREE_CONSOLE FreeConsoleRequest;
CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
CONSOLE_FREECONSOLE FreeConsoleRequest;
/* Handles */
CSRSS_OPEN_CONSOLE OpenConsoleRequest;
CSRSS_CLOSE_HANDLE CloseHandleRequest;
CSRSS_VERIFY_HANDLE VerifyHandleRequest;
CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
CONSOLE_OPENCONSOLE OpenConsoleRequest;
CONSOLE_CLOSEHANDLE CloseHandleRequest;
CONSOLE_VERIFYHANDLE VerifyHandleRequest;
CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
#if 0
CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
#endif
/* Cursor */
CSRSS_CURSOR_INFO CursorInfoRequest;
CSRSS_SET_CURSOR_POSITION SetCursorPositionRequest;
CONSOLE_GETSETCURSORINFO CursorInfoRequest;
CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
/* Screen buffer */
CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
CSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize;
CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo;
CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
/* Console mode */
CSRSS_CONSOLE_MODE ConsoleModeRequest;
CSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
CONSOLE_GETSETHWSTATE HardwareStateRequest;
/* Console window */
CSRSS_CONSOLE_TITLE TitleRequest;
CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
CONSOLE_GETSETCONSOLETITLE TitleRequest;
CONSOLE_GETWINDOW GetWindowRequest;
CONSOLE_SETICON SetIconRequest;
/* Read */
CSRSS_READ_CONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
CSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
CSRSS_READ_CONSOLE_OUTPUT_CODE ReadConsoleOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
/* Write */
CSRSS_WRITE_CONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
CSRSS_WRITE_CONSOLE_OUTPUT_CODE WriteConsoleOutputCodeRequest;
CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
CONSOLE_WRITEINPUT WriteInputRequest;
CONSOLE_WRITEOUTPUT WriteOutputRequest;
CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
CSRSS_FILL_OUTPUT FillOutputRequest;
CSRSS_SET_ATTRIB SetAttribRequest;
CONSOLE_FILLOUTPUTCODE FillOutputRequest;
CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
/* Aliases */
CSRSS_CONSOLE_ALIAS ConsoleAlias;
CSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAliases;
CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength;
CSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes;
CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength;
CONSOLE_ADDGETALIAS ConsoleAliasRequest;
CONSOLE_GETALLALIASES GetAllAliasesRequest;
CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
CONSOLE_GETALIASESEXES GetAliasesExesRequest;
CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
/* History */
CSRSS_GET_COMMAND_HISTORY GetCommandHistory;
CSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength;
CSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory;
CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands;
CSRSS_HISTORY_INFO HistoryInfoRequest;
CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
CSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent;
CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
/* Input and Output Code Pages */
CSRSS_CONSOLE_CP ConsoleCPRequest;
CONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest;
CSRSS_GET_PROCESS_LIST GetProcessListRequest;
CONSOLE_GETPROCESSLIST GetProcessListRequest;
} Data;
} CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;

View file

@ -289,7 +289,7 @@ IntDeleteAllAliases(PALIAS_HEADER RootHeader)
CSR_API(SrvAddConsoleAlias)
{
PCSRSS_CONSOLE_ALIAS ConsoleAlias = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAlias;
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
PCSRSS_CONSOLE Console;
PALIAS_HEADER Header;
PALIAS_ENTRY Entry;
@ -298,24 +298,24 @@ CSR_API(SrvAddConsoleAlias)
DPRINT("SrvAddConsoleAlias entered ApiMessage %p\n", ApiMessage);
if ( !CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Source,
ConsoleAlias->SourceLength,
(PVOID*)&ConsoleAliasRequest->Source,
ConsoleAliasRequest->SourceLength,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Target,
ConsoleAlias->TargetLength,
(PVOID*)&ConsoleAliasRequest->Target,
ConsoleAliasRequest->TargetLength,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Exe,
ConsoleAlias->ExeLength,
(PVOID*)&ConsoleAliasRequest->Exe,
ConsoleAliasRequest->ExeLength,
sizeof(BYTE)) )
{
return STATUS_INVALID_PARAMETER;
}
lpSource = ConsoleAlias->Source;
lpTarget = (ConsoleAlias->TargetLength != 0 ? ConsoleAlias->Target : NULL);
lpExeName = ConsoleAlias->Exe;
lpSource = ConsoleAliasRequest->Source;
lpTarget = (ConsoleAliasRequest->TargetLength != 0 ? ConsoleAliasRequest->Target : NULL);
lpExeName = ConsoleAliasRequest->Exe;
DPRINT("SrvAddConsoleAlias lpSource %p lpExeName %p lpTarget %p\n", lpSource, lpExeName, lpTarget);
@ -373,7 +373,7 @@ CSR_API(SrvAddConsoleAlias)
CSR_API(SrvGetConsoleAlias)
{
PCSRSS_CONSOLE_ALIAS ConsoleAlias = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAlias;
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
PCSRSS_CONSOLE Console;
PALIAS_HEADER Header;
PALIAS_ENTRY Entry;
@ -383,30 +383,30 @@ CSR_API(SrvGetConsoleAlias)
DPRINT("SrvGetConsoleAlias entered ApiMessage %p\n", ApiMessage);
if ( !CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Source,
ConsoleAlias->SourceLength,
(PVOID*)&ConsoleAliasRequest->Source,
ConsoleAliasRequest->SourceLength,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Target,
ConsoleAlias->TargetLength,
(PVOID*)&ConsoleAliasRequest->Target,
ConsoleAliasRequest->TargetLength,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ConsoleAlias->Exe,
ConsoleAlias->ExeLength,
(PVOID*)&ConsoleAliasRequest->Exe,
ConsoleAliasRequest->ExeLength,
sizeof(BYTE)) )
{
return STATUS_INVALID_PARAMETER;
}
lpSource = ConsoleAlias->Source;
lpTarget = ConsoleAlias->Target;
lpExeName = ConsoleAlias->Exe;
lpSource = ConsoleAliasRequest->Source;
lpTarget = ConsoleAliasRequest->Target;
lpExeName = ConsoleAliasRequest->Exe;
DPRINT("SrvGetConsoleAlias lpExeName %p lpSource %p TargetBuffer %p TargetLength %u\n",
lpExeName, lpSource, lpTarget, ConsoleAlias->TargetLength);
lpExeName, lpSource, lpTarget, ConsoleAliasRequest->TargetLength);
if (ConsoleAlias->ExeLength == 0 || lpTarget == NULL ||
ConsoleAlias->TargetLength == 0 || ConsoleAlias->SourceLength == 0)
if (ConsoleAliasRequest->ExeLength == 0 || lpTarget == NULL ||
ConsoleAliasRequest->TargetLength == 0 || ConsoleAliasRequest->SourceLength == 0)
{
return STATUS_INVALID_PARAMETER;
}
@ -432,38 +432,38 @@ CSR_API(SrvGetConsoleAlias)
}
Length = (wcslen(Entry->lpTarget) + 1) * sizeof(WCHAR);
if (Length > ConsoleAlias->TargetLength)
if (Length > ConsoleAliasRequest->TargetLength)
{
ConioUnlockConsole(Console);
return STATUS_BUFFER_TOO_SMALL;
}
wcscpy(lpTarget, Entry->lpTarget);
ConsoleAlias->TargetLength = Length;
ConsoleAliasRequest->TargetLength = Length;
ConioUnlockConsole(Console);
return STATUS_SUCCESS;
}
CSR_API(SrvGetConsoleAliases)
{
PCSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAliases = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllConsoleAliases;
PCONSOLE_GETALLALIASES GetAllAliasesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesRequest;
PCSRSS_CONSOLE Console;
ULONG BytesWritten;
PALIAS_HEADER Header;
if ( !CsrValidateMessageBuffer(ApiMessage,
(PVOID)&GetAllConsoleAliases->ExeName,
GetAllConsoleAliases->ExeLength,
(PVOID)&GetAllAliasesRequest->ExeName,
GetAllAliasesRequest->ExeLength,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID)&GetAllConsoleAliases->AliasesBuffer,
GetAllConsoleAliases->AliasesBufferLength,
(PVOID)&GetAllAliasesRequest->AliasesBuffer,
GetAllAliasesRequest->AliasesBufferLength,
sizeof(BYTE)) )
{
return STATUS_INVALID_PARAMETER;
}
if (GetAllConsoleAliases->ExeName == NULL)
if (GetAllAliasesRequest->ExeName == NULL)
{
return STATUS_INVALID_PARAMETER;
}
@ -474,44 +474,44 @@ CSR_API(SrvGetConsoleAliases)
return ApiMessage->Status;
}
Header = IntFindAliasHeader(Console->Aliases, GetAllConsoleAliases->ExeName);
Header = IntFindAliasHeader(Console->Aliases, GetAllAliasesRequest->ExeName);
if (!Header)
{
ConioUnlockConsole(Console);
return STATUS_INVALID_PARAMETER;
}
if (IntGetAllConsoleAliasesLength(Header) > GetAllConsoleAliases->AliasesBufferLength)
if (IntGetAllConsoleAliasesLength(Header) > GetAllAliasesRequest->AliasesBufferLength)
{
ConioUnlockConsole(Console);
return STATUS_BUFFER_OVERFLOW;
}
BytesWritten = IntGetAllConsoleAliases(Header,
GetAllConsoleAliases->AliasesBuffer,
GetAllConsoleAliases->AliasesBufferLength);
GetAllAliasesRequest->AliasesBuffer,
GetAllAliasesRequest->AliasesBufferLength);
GetAllConsoleAliases->AliasesBufferLength = BytesWritten;
GetAllAliasesRequest->AliasesBufferLength = BytesWritten;
ConioUnlockConsole(Console);
return STATUS_SUCCESS;
}
CSR_API(SrvGetConsoleAliasesLength)
{
PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllConsoleAliasesLength;
PCONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesLengthRequest;
PCSRSS_CONSOLE Console;
PALIAS_HEADER Header;
UINT Length;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID)&GetAllConsoleAliasesLength->ExeName,
GetAllConsoleAliasesLength->ExeLength,
(PVOID)&GetAllAliasesLengthRequest->ExeName,
GetAllAliasesLengthRequest->ExeLength,
sizeof(BYTE)))
{
return STATUS_INVALID_PARAMETER;
}
if (GetAllConsoleAliasesLength->ExeName == NULL)
if (GetAllAliasesLengthRequest->ExeName == NULL)
{
return STATUS_INVALID_PARAMETER;
}
@ -522,7 +522,7 @@ CSR_API(SrvGetConsoleAliasesLength)
return ApiMessage->Status;
}
Header = IntFindAliasHeader(Console->Aliases, GetAllConsoleAliasesLength->ExeName);
Header = IntFindAliasHeader(Console->Aliases, GetAllAliasesLengthRequest->ExeName);
if (!Header)
{
ConioUnlockConsole(Console);
@ -530,14 +530,14 @@ CSR_API(SrvGetConsoleAliasesLength)
}
Length = IntGetAllConsoleAliasesLength(Header);
GetAllConsoleAliasesLength->Length = Length;
GetAllAliasesLengthRequest->Length = Length;
ConioUnlockConsole(Console);
return STATUS_SUCCESS;
}
CSR_API(SrvGetConsoleAliasExes)
{
PCSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleAliasesExes;
PCONSOLE_GETALIASESEXES GetAliasesExesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesRequest;
PCSRSS_CONSOLE Console;
UINT BytesWritten;
UINT ExesLength;
@ -545,8 +545,8 @@ CSR_API(SrvGetConsoleAliasExes)
DPRINT("SrvGetConsoleAliasExes entered\n");
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID)&GetConsoleAliasesExes->ExeNames,
GetConsoleAliasesExes->Length,
(PVOID)&GetAliasesExesRequest->ExeNames,
GetAliasesExesRequest->Length,
sizeof(BYTE)))
{
return STATUS_INVALID_PARAMETER;
@ -560,37 +560,37 @@ CSR_API(SrvGetConsoleAliasExes)
ExesLength = IntGetConsoleAliasesExesLength(Console->Aliases);
if (ExesLength > GetConsoleAliasesExes->Length)
if (ExesLength > GetAliasesExesRequest->Length)
{
ConioUnlockConsole(Console);
return STATUS_BUFFER_OVERFLOW;
}
if (GetConsoleAliasesExes->ExeNames == NULL)
if (GetAliasesExesRequest->ExeNames == NULL)
{
ConioUnlockConsole(Console);
return STATUS_INVALID_PARAMETER;
}
BytesWritten = IntGetConsoleAliasesExes(Console->Aliases,
GetConsoleAliasesExes->ExeNames,
GetConsoleAliasesExes->Length);
GetAliasesExesRequest->ExeNames,
GetAliasesExesRequest->Length);
GetConsoleAliasesExes->Length = BytesWritten;
GetAliasesExesRequest->Length = BytesWritten;
ConioUnlockConsole(Console);
return STATUS_SUCCESS;
}
CSR_API(SrvGetConsoleAliasExesLength)
{
PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleAliasesExesLength;
PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesLengthRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvGetConsoleAliasExesLength entered\n");
ApiMessage->Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (NT_SUCCESS(ApiMessage->Status))
{
GetConsoleAliasesExesLength->Length = IntGetConsoleAliasesExesLength(Console->Aliases);
GetAliasesExesLengthRequest->Length = IntGetConsoleAliasesExesLength(Console->Aliases);
ConioUnlockConsole(Console);
}
return ApiMessage->Status;

View file

@ -350,11 +350,11 @@ ReadInputBufferThread(IN PLIST_ENTRY WaitList,
IN ULONG WaitFlags)
{
NTSTATUS Status;
PCSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest = &((PCONSOLE_API_MESSAGE)WaitApiMessage)->Data.GetConsoleInputRequest;
PCONSOLE_GETINPUT GetInputRequest = &((PCONSOLE_API_MESSAGE)WaitApiMessage)->Data.GetInputRequest;
PGET_INPUT_INFO InputInfo = (PGET_INPUT_INFO)WaitContext;
Status = ReadInputBuffer(InputInfo,
GetConsoleInputRequest->bRead,
GetInputRequest->bRead,
WaitApiMessage,
FALSE);
@ -390,24 +390,24 @@ ReadInputBuffer(IN PGET_INPUT_INFO InputInfo,
}
else
{
PCSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleInputRequest;
PCONSOLE_GETINPUT GetInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetInputRequest;
PLIST_ENTRY CurrentInput;
ConsoleInput* Input;
ULONG Length = GetConsoleInputRequest->Length;
PINPUT_RECORD InputRecord = GetConsoleInputRequest->InputRecord;
ULONG Length = GetInputRequest->Length;
PINPUT_RECORD InputRecord = GetInputRequest->InputRecord;
/* Only get input if there is any */
CurrentInput = InputInfo->Console->InputEvents.Flink;
while ( CurrentInput != &InputInfo->Console->InputEvents &&
GetConsoleInputRequest->InputsRead < Length )
GetInputRequest->InputsRead < Length )
{
Input = CONTAINING_RECORD(CurrentInput, ConsoleInput, ListEntry);
GetConsoleInputRequest->InputsRead++;
GetInputRequest->InputsRead++;
*InputRecord = Input->InputEvent;
if (GetConsoleInputRequest->Unicode == FALSE)
if (GetInputRequest->Unicode == FALSE)
{
ConioInputEventToAnsi(InputInfo->Console, InputRecord);
}
@ -470,7 +470,7 @@ ReadChars(IN PGET_INPUT_INFO InputInfo,
{
BOOL WaitForMoreToRead = TRUE; // TRUE : Wait if more to read ; FALSE : Don't wait.
PCSRSS_READ_CONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
PCONSOLE_READCONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
PLIST_ENTRY CurrentEntry;
ConsoleInput *Input;
PCHAR Buffer = (PCHAR)ReadConsoleRequest->Buffer;
@ -624,7 +624,7 @@ ReadChars(IN PGET_INPUT_INFO InputInfo,
CSR_API(SrvGetConsoleInput)
{
NTSTATUS Status;
PCSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleInputRequest;
PCONSOLE_GETINPUT GetInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetInputRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
GET_INPUT_INFO InputInfo;
@ -632,23 +632,23 @@ CSR_API(SrvGetConsoleInput)
DPRINT("SrvGetConsoleInput\n");
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&GetConsoleInputRequest->InputRecord,
GetConsoleInputRequest->Length,
(PVOID*)&GetInputRequest->InputRecord,
GetInputRequest->Length,
sizeof(INPUT_RECORD)))
{
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockConsole(ProcessData, GetConsoleInputRequest->ConsoleHandle, &Console, GENERIC_READ);
Status = ConioLockConsole(ProcessData, GetInputRequest->InputHandle, &Console, GENERIC_READ);
if(!NT_SUCCESS(Status)) return Status;
GetConsoleInputRequest->InputsRead = 0;
GetInputRequest->InputsRead = 0;
InputInfo.ProcessData = ProcessData; // ConsoleGetPerProcessData(CsrGetClientThread()->Process);
InputInfo.Console = Console;
Status = ReadInputBuffer(&InputInfo,
GetConsoleInputRequest->bRead,
GetInputRequest->bRead,
ApiMessage,
TRUE);
@ -663,7 +663,7 @@ CSR_API(SrvGetConsoleInput)
CSR_API(SrvWriteConsoleInput)
{
NTSTATUS Status;
PCSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleInputRequest;
PCONSOLE_WRITEINPUT WriteInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteInputRequest;
PINPUT_RECORD InputRecord;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
@ -673,22 +673,22 @@ CSR_API(SrvWriteConsoleInput)
DPRINT("SrvWriteConsoleInput\n");
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&WriteConsoleInputRequest->InputRecord,
WriteConsoleInputRequest->Length,
(PVOID*)&WriteInputRequest->InputRecord,
WriteInputRequest->Length,
sizeof(INPUT_RECORD)))
{
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockConsole(ProcessData, WriteConsoleInputRequest->ConsoleHandle, &Console, GENERIC_WRITE);
Status = ConioLockConsole(ProcessData, WriteInputRequest->InputHandle, &Console, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
InputRecord = WriteConsoleInputRequest->InputRecord;
Length = WriteConsoleInputRequest->Length;
InputRecord = WriteInputRequest->InputRecord;
Length = WriteInputRequest->Length;
for (i = 0; i < Length && NT_SUCCESS(Status); i++)
{
if (!WriteConsoleInputRequest->Unicode &&
if (!WriteInputRequest->Unicode &&
InputRecord->EventType == KEY_EVENT)
{
CHAR AsciiChar = InputRecord->Event.KeyEvent.uChar.AsciiChar;
@ -702,7 +702,7 @@ CSR_API(SrvWriteConsoleInput)
ConioUnlockConsole(Console);
WriteConsoleInputRequest->Length = i;
WriteInputRequest->Length = i;
return Status;
}
@ -710,7 +710,7 @@ CSR_API(SrvWriteConsoleInput)
CSR_API(SrvReadConsole)
{
NTSTATUS Status;
PCSRSS_READ_CONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
PCONSOLE_READCONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
GET_INPUT_INFO InputInfo;
@ -731,7 +731,7 @@ CSR_API(SrvReadConsole)
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockConsole(ProcessData, ReadConsoleRequest->ConsoleHandle, &Console, GENERIC_READ);
Status = ConioLockConsole(ProcessData, ReadConsoleRequest->InputHandle, &Console, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
ReadConsoleRequest->NrCharactersRead = 0;
@ -754,7 +754,7 @@ CSR_API(SrvReadConsole)
CSR_API(SrvFlushConsoleInputBuffer)
{
NTSTATUS Status;
PCSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FlushInputBufferRequest;
PCONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FlushInputBufferRequest;
PLIST_ENTRY CurrentEntry;
PCSRSS_CONSOLE Console;
ConsoleInput* Input;
@ -762,7 +762,7 @@ CSR_API(SrvFlushConsoleInputBuffer)
DPRINT("SrvFlushConsoleInputBuffer\n");
Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
FlushInputBufferRequest->ConsoleInput,
FlushInputBufferRequest->InputHandle,
&Console,
GENERIC_WRITE);
if(!NT_SUCCESS(Status)) return Status;
@ -785,14 +785,14 @@ CSR_API(SrvFlushConsoleInputBuffer)
CSR_API(SrvGetConsoleNumberOfInputEvents)
{
NTSTATUS Status;
PCSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetNumInputEventsRequest;
PCONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetNumInputEventsRequest;
PCSRSS_CONSOLE Console;
PLIST_ENTRY CurrentInput;
DWORD NumEvents;
DPRINT("SrvGetConsoleNumberOfInputEvents\n");
Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), GetNumInputEventsRequest->ConsoleHandle, &Console, GENERIC_READ);
Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process), GetNumInputEventsRequest->InputHandle, &Console, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
CurrentInput = Console->InputEvents.Flink;

View file

@ -465,14 +465,14 @@ DoWriteConsole(IN PCSR_API_MESSAGE ApiMessage,
IN BOOL CreateWaitBlock OPTIONAL)
{
NTSTATUS Status = STATUS_SUCCESS;
PCSRSS_WRITE_CONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
PCONSOLE_WRITECONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
PCHAR Buffer;
DWORD Written = 0;
ULONG Length;
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(ClientThread->Process), WriteConsoleRequest->ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(ClientThread->Process), WriteConsoleRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
@ -553,7 +553,7 @@ DoWriteConsole(IN PCSR_API_MESSAGE ApiMessage,
CSR_API(SrvReadConsoleOutput)
{
PCSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleOutputRequest;
PCONSOLE_READOUTPUT ReadOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadOutputRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCHAR_INFO CharInfo;
PCHAR_INFO CurCharInfo;
@ -571,20 +571,20 @@ CSR_API(SrvReadConsoleOutput)
DPRINT("SrvReadConsoleOutput\n");
CharInfo = ReadConsoleOutputRequest->CharInfo;
ReadRegion = ReadConsoleOutputRequest->ReadRegion;
BufferSize = ReadConsoleOutputRequest->BufferSize;
BufferCoord = ReadConsoleOutputRequest->BufferCoord;
CharInfo = ReadOutputRequest->CharInfo;
ReadRegion = ReadOutputRequest->ReadRegion;
BufferSize = ReadOutputRequest->BufferSize;
BufferCoord = ReadOutputRequest->BufferCoord;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ReadConsoleOutputRequest->CharInfo,
(PVOID*)&ReadOutputRequest->CharInfo,
BufferSize.X * BufferSize.Y,
sizeof(CHAR_INFO)))
{
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockScreenBuffer(ProcessData, ReadConsoleOutputRequest->ConsoleHandle, &Buff, GENERIC_READ);
Status = ConioLockScreenBuffer(ProcessData, ReadOutputRequest->OutputHandle, &Buff, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
/* FIXME: Is this correct? */
@ -609,7 +609,7 @@ CSR_API(SrvReadConsoleOutput)
Ptr = ConioCoordToPointer(Buff, ReadRegion.Left, Y);
for (X = ReadRegion.Left; X < ReadRegion.Right; ++X)
{
if (ReadConsoleOutputRequest->Unicode)
if (ReadOutputRequest->Unicode)
{
// ConsoleAnsiCharToUnicodeChar(ProcessData->Console, (PCHAR)Ptr++, &CurCharInfo->Char.UnicodeChar);
MultiByteToWideChar(CodePage, 0,
@ -627,10 +627,10 @@ CSR_API(SrvReadConsoleOutput)
ConioUnlockScreenBuffer(Buff);
ReadConsoleOutputRequest->ReadRegion.Right = ReadRegion.Left + SizeX - 1;
ReadConsoleOutputRequest->ReadRegion.Bottom = ReadRegion.Top + SizeY - 1;
ReadConsoleOutputRequest->ReadRegion.Left = ReadRegion.Left;
ReadConsoleOutputRequest->ReadRegion.Top = ReadRegion.Top;
ReadOutputRequest->ReadRegion.Right = ReadRegion.Left + SizeX - 1;
ReadOutputRequest->ReadRegion.Bottom = ReadRegion.Top + SizeY - 1;
ReadOutputRequest->ReadRegion.Left = ReadRegion.Left;
ReadOutputRequest->ReadRegion.Top = ReadRegion.Top;
return STATUS_SUCCESS;
}
@ -638,7 +638,7 @@ CSR_API(SrvReadConsoleOutput)
CSR_API(SrvWriteConsole)
{
NTSTATUS Status;
PCSRSS_WRITE_CONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
PCONSOLE_WRITECONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
DPRINT("SrvWriteConsole\n");
@ -662,7 +662,7 @@ CSR_API(SrvWriteConsole)
CSR_API(SrvWriteConsoleOutput)
{
PCSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleOutputRequest;
PCONSOLE_WRITEOUTPUT WriteOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
SHORT i, X, Y, SizeX, SizeY;
PCSRSS_CONSOLE Console;
@ -678,12 +678,12 @@ CSR_API(SrvWriteConsoleOutput)
DPRINT("SrvWriteConsoleOutput\n");
BufferSize = WriteConsoleOutputRequest->BufferSize;
BufferCoord = WriteConsoleOutputRequest->BufferCoord;
CharInfo = WriteConsoleOutputRequest->CharInfo;
BufferSize = WriteOutputRequest->BufferSize;
BufferCoord = WriteOutputRequest->BufferCoord;
CharInfo = WriteOutputRequest->CharInfo;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&WriteConsoleOutputRequest->CharInfo,
(PVOID*)&WriteOutputRequest->CharInfo,
BufferSize.X * BufferSize.Y,
sizeof(CHAR_INFO)))
{
@ -691,14 +691,14 @@ CSR_API(SrvWriteConsoleOutput)
}
Status = ConioLockScreenBuffer(ProcessData,
WriteConsoleOutputRequest->ConsoleHandle,
WriteOutputRequest->OutputHandle,
&Buff,
GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
WriteRegion = WriteConsoleOutputRequest->WriteRegion;
WriteRegion = WriteOutputRequest->WriteRegion;
SizeY = min(BufferSize.Y - BufferCoord.Y, ConioRectHeight(&WriteRegion));
SizeX = min(BufferSize.X - BufferCoord.X, ConioRectWidth(&WriteRegion));
@ -723,7 +723,7 @@ CSR_API(SrvWriteConsoleOutput)
for (X = WriteRegion.Left; X <= WriteRegion.Right; X++)
{
CHAR AsciiChar;
if (WriteConsoleOutputRequest->Unicode)
if (WriteOutputRequest->Unicode)
{
ConsoleUnicodeCharToAnsiChar(Console, &AsciiChar, &CurCharInfo->Char.UnicodeChar);
}
@ -741,10 +741,10 @@ CSR_API(SrvWriteConsoleOutput)
ConioUnlockScreenBuffer(Buff);
WriteConsoleOutputRequest->WriteRegion.Right = WriteRegion.Left + SizeX - 1;
WriteConsoleOutputRequest->WriteRegion.Bottom = WriteRegion.Top + SizeY - 1;
WriteConsoleOutputRequest->WriteRegion.Left = WriteRegion.Left;
WriteConsoleOutputRequest->WriteRegion.Top = WriteRegion.Top;
WriteOutputRequest->WriteRegion.Right = WriteRegion.Left + SizeX - 1;
WriteOutputRequest->WriteRegion.Bottom = WriteRegion.Top + SizeY - 1;
WriteOutputRequest->WriteRegion.Left = WriteRegion.Left;
WriteOutputRequest->WriteRegion.Top = WriteRegion.Top;
return STATUS_SUCCESS;
}
@ -752,7 +752,7 @@ CSR_API(SrvWriteConsoleOutput)
CSR_API(SrvReadConsoleOutputString)
{
NTSTATUS Status;
PCSRSS_READ_CONSOLE_OUTPUT_CODE ReadConsoleOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleOutputCodeRequest;
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadOutputCodeRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
USHORT CodeType;
@ -764,7 +764,7 @@ CSR_API(SrvReadConsoleOutputString)
DPRINT("SrvReadConsoleOutputString\n");
CodeType = ReadConsoleOutputCodeRequest->CodeType;
CodeType = ReadOutputCodeRequest->CodeType;
switch (CodeType)
{
case CODE_ASCII:
@ -784,21 +784,21 @@ CSR_API(SrvReadConsoleOutputString)
}
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ReadConsoleOutputCodeRequest->pCode.pCode,
ReadConsoleOutputCodeRequest->NumCodesToRead,
(PVOID*)&ReadOutputCodeRequest->pCode.pCode,
ReadOutputCodeRequest->NumCodesToRead,
CodeSize))
{
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ReadConsoleOutputCodeRequest->ConsoleHandle, &Buff, GENERIC_READ);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ReadOutputCodeRequest->OutputHandle, &Buff, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
ReadBuffer = ReadConsoleOutputCodeRequest->pCode.pCode;
Xpos = ReadConsoleOutputCodeRequest->ReadCoord.X;
Ypos = (ReadConsoleOutputCodeRequest->ReadCoord.Y + Buff->VirtualY) % Buff->MaxY;
ReadBuffer = ReadOutputCodeRequest->pCode.pCode;
Xpos = ReadOutputCodeRequest->ReadCoord.X;
Ypos = (ReadOutputCodeRequest->ReadCoord.Y + Buff->VirtualY) % Buff->MaxY;
/*
* MSDN (ReadConsoleOutputAttribute and ReadConsoleOutputCharacter) :
@ -813,7 +813,7 @@ CSR_API(SrvReadConsoleOutputString)
* TODO: Do NOT loop up to NumCodesToRead, but stop before
* if we are going to overflow...
*/
for (i = 0; i < ReadConsoleOutputCodeRequest->NumCodesToRead; ++i)
for (i = 0; i < ReadOutputCodeRequest->NumCodesToRead; ++i)
{
Code = Buff->Buffer[2 * (Xpos + Ypos * Buff->MaxX) + (CodeType == CODE_ATTRIBUTE ? 1 : 0)];
@ -862,13 +862,13 @@ CSR_API(SrvReadConsoleOutputString)
break;
}
ReadConsoleOutputCodeRequest->EndCoord.X = Xpos;
ReadConsoleOutputCodeRequest->EndCoord.Y = (Ypos - Buff->VirtualY + Buff->MaxY) % Buff->MaxY;
ReadOutputCodeRequest->EndCoord.X = Xpos;
ReadOutputCodeRequest->EndCoord.Y = (Ypos - Buff->VirtualY + Buff->MaxY) % Buff->MaxY;
ConioUnlockScreenBuffer(Buff);
ReadConsoleOutputCodeRequest->CodesRead = (DWORD)((ULONG_PTR)ReadBuffer - (ULONG_PTR)ReadConsoleOutputCodeRequest->pCode.pCode) / CodeSize;
// <= ReadConsoleOutputCodeRequest->NumCodesToRead
ReadOutputCodeRequest->CodesRead = (DWORD)((ULONG_PTR)ReadBuffer - (ULONG_PTR)ReadOutputCodeRequest->pCode.pCode) / CodeSize;
// <= ReadOutputCodeRequest->NumCodesToRead
return STATUS_SUCCESS;
}
@ -876,7 +876,7 @@ CSR_API(SrvReadConsoleOutputString)
CSR_API(SrvWriteConsoleOutputString)
{
NTSTATUS Status;
PCSRSS_WRITE_CONSOLE_OUTPUT_CODE WriteConsoleOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleOutputCodeRequest;
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputCodeRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
USHORT CodeType;
@ -888,7 +888,7 @@ CSR_API(SrvWriteConsoleOutputString)
DPRINT("SrvWriteConsoleOutputString\n");
CodeType = WriteConsoleOutputCodeRequest->CodeType;
CodeType = WriteOutputCodeRequest->CodeType;
switch (CodeType)
{
case CODE_ASCII:
@ -908,15 +908,15 @@ CSR_API(SrvWriteConsoleOutputString)
}
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&WriteConsoleOutputCodeRequest->pCode.pCode,
WriteConsoleOutputCodeRequest->Length,
(PVOID*)&WriteOutputCodeRequest->pCode.pCode,
WriteOutputCodeRequest->Length,
CodeSize))
{
return STATUS_INVALID_PARAMETER;
}
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
WriteConsoleOutputCodeRequest->ConsoleHandle,
WriteOutputCodeRequest->OutputHandle,
&Buff,
GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
@ -928,15 +928,15 @@ CSR_API(SrvWriteConsoleOutputString)
case CODE_UNICODE:
{
Length = WideCharToMultiByte(Console->OutputCodePage, 0,
(PWCHAR)WriteConsoleOutputCodeRequest->pCode.UnicodeChar,
WriteConsoleOutputCodeRequest->Length,
(PWCHAR)WriteOutputCodeRequest->pCode.UnicodeChar,
WriteOutputCodeRequest->Length,
NULL, 0, NULL, NULL);
tmpString = String = RtlAllocateHeap(GetProcessHeap(), 0, Length);
if (String)
{
WideCharToMultiByte(Console->OutputCodePage, 0,
(PWCHAR)WriteConsoleOutputCodeRequest->pCode.UnicodeChar,
WriteConsoleOutputCodeRequest->Length,
(PWCHAR)WriteOutputCodeRequest->pCode.UnicodeChar,
WriteOutputCodeRequest->Length,
String, Length, NULL, NULL);
}
else
@ -948,21 +948,21 @@ CSR_API(SrvWriteConsoleOutputString)
}
case CODE_ASCII:
String = (PCHAR)WriteConsoleOutputCodeRequest->pCode.AsciiChar;
String = (PCHAR)WriteOutputCodeRequest->pCode.AsciiChar;
break;
case CODE_ATTRIBUTE:
default:
// *(ReadBuffer++) = Code;
String = (PCHAR)WriteConsoleOutputCodeRequest->pCode.Attribute;
String = (PCHAR)WriteOutputCodeRequest->pCode.Attribute;
break;
}
if (String && NT_SUCCESS(Status))
{
X = WriteConsoleOutputCodeRequest->Coord.X;
Y = (WriteConsoleOutputCodeRequest->Coord.Y + Buff->VirtualY) % Buff->MaxY;
Length = WriteConsoleOutputCodeRequest->Length;
X = WriteOutputCodeRequest->Coord.X;
Y = (WriteOutputCodeRequest->Coord.Y + Buff->VirtualY) % Buff->MaxY;
Length = WriteOutputCodeRequest->Length;
Buffer = &Buff->Buffer[2 * (Y * Buff->MaxX + X) + (CodeType == CODE_ATTRIBUTE ? 1 : 0)];
while (Length--)
@ -985,13 +985,13 @@ CSR_API(SrvWriteConsoleOutputString)
if (Buff == Console->ActiveBuffer)
{
ConioComputeUpdateRect(Buff, &UpdateRect, &WriteConsoleOutputCodeRequest->Coord,
WriteConsoleOutputCodeRequest->Length);
ConioComputeUpdateRect(Buff, &UpdateRect, &WriteOutputCodeRequest->Coord,
WriteOutputCodeRequest->Length);
ConioDrawRegion(Console, &UpdateRect);
}
WriteConsoleOutputCodeRequest->EndCoord.X = X;
WriteConsoleOutputCodeRequest->EndCoord.Y = (Y + Buff->MaxY - Buff->VirtualY) % Buff->MaxY;
WriteOutputCodeRequest->EndCoord.X = X;
WriteOutputCodeRequest->EndCoord.Y = (Y + Buff->MaxY - Buff->VirtualY) % Buff->MaxY;
}
if (tmpString)
@ -1001,14 +1001,14 @@ CSR_API(SrvWriteConsoleOutputString)
ConioUnlockScreenBuffer(Buff);
// WriteConsoleOutputCodeRequest->NrCharactersWritten = Written;
// WriteOutputCodeRequest->NrCharactersWritten = Written;
return Status;
}
CSR_API(SrvFillConsoleOutput)
{
NTSTATUS Status;
PCSRSS_FILL_OUTPUT FillOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FillOutputRequest;
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FillOutputRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
DWORD X, Y, Length; // , Written = 0;
@ -1019,7 +1019,7 @@ CSR_API(SrvFillConsoleOutput)
DPRINT("SrvFillConsoleOutput\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), FillOutputRequest->ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), FillOutputRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
@ -1084,12 +1084,12 @@ CSR_API(SrvFillConsoleOutput)
CSR_API(SrvGetConsoleCursorInfo)
{
NTSTATUS Status;
PCSRSS_CURSOR_INFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
PCSRSS_SCREEN_BUFFER Buff;
DPRINT("SrvGetConsoleCursorInfo\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), CursorInfoRequest->ConsoleHandle, &Buff, GENERIC_READ);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), CursorInfoRequest->OutputHandle, &Buff, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
CursorInfoRequest->Info.bVisible = Buff->CursorInfo.bVisible;
@ -1102,7 +1102,7 @@ CSR_API(SrvGetConsoleCursorInfo)
CSR_API(SrvSetConsoleCursorInfo)
{
NTSTATUS Status;
PCSRSS_CURSOR_INFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
DWORD Size;
@ -1110,7 +1110,7 @@ CSR_API(SrvSetConsoleCursorInfo)
DPRINT("SrvSetConsoleCursorInfo\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), CursorInfoRequest->ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), CursorInfoRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
@ -1148,7 +1148,7 @@ CSR_API(SrvSetConsoleCursorInfo)
CSR_API(SrvSetConsoleCursorPosition)
{
NTSTATUS Status;
PCSRSS_SET_CURSOR_POSITION SetCursorPositionRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetCursorPositionRequest;
PCONSOLE_SETCURSORPOSITION SetCursorPositionRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetCursorPositionRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
LONG OldCursorX, OldCursorY;
@ -1156,7 +1156,7 @@ CSR_API(SrvSetConsoleCursorPosition)
DPRINT("SrvSetConsoleCursorPosition\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetCursorPositionRequest->ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetCursorPositionRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
@ -1190,18 +1190,18 @@ CSR_API(SrvSetConsoleCursorPosition)
CSR_API(SrvSetConsoleTextAttribute)
{
NTSTATUS Status;
PCSRSS_SET_ATTRIB SetAttribRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetAttribRequest;
PCONSOLE_SETTEXTATTRIB SetTextAttribRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetTextAttribRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
DPRINT("SrvSetConsoleTextAttribute\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetAttribRequest->ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetTextAttribRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
Buff->DefaultAttrib = SetAttribRequest->Attrib;
Buff->DefaultAttrib = SetTextAttribRequest->Attrib;
if (Buff == Console->ActiveBuffer)
{
if (!ConioUpdateScreenInfo(Console, Buff))
@ -1219,7 +1219,7 @@ CSR_API(SrvSetConsoleTextAttribute)
CSR_API(SrvCreateConsoleScreenBuffer)
{
NTSTATUS Status;
PCSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CreateScreenBufferRequest;
PCONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CreateScreenBufferRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
@ -1287,14 +1287,14 @@ CSR_API(SrvCreateConsoleScreenBuffer)
CSR_API(SrvGetConsoleScreenBufferInfo)
{
NTSTATUS Status;
PCSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScreenBufferInfoRequest;
PCONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScreenBufferInfoRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
PCONSOLE_SCREEN_BUFFER_INFO pInfo = &ScreenBufferInfoRequest->Info;
DPRINT("SrvGetConsoleScreenBufferInfo\n");
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ScreenBufferInfoRequest->ConsoleHandle, &Buff, GENERIC_READ);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ScreenBufferInfoRequest->OutputHandle, &Buff, GENERIC_READ);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
@ -1319,7 +1319,7 @@ CSR_API(SrvGetConsoleScreenBufferInfo)
CSR_API(SrvSetConsoleActiveScreenBuffer)
{
NTSTATUS Status;
PCSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferRequest;
PCONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
@ -1355,7 +1355,7 @@ CSR_API(SrvSetConsoleActiveScreenBuffer)
CSR_API(SrvScrollConsoleScreenBuffer)
{
PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScrollConsoleScreenBufferRequest;
PCONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScrollScreenBufferRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
SMALL_RECT ScreenBuffer;
@ -1365,7 +1365,7 @@ CSR_API(SrvScrollConsoleScreenBuffer)
SMALL_RECT ScrollRectangle;
SMALL_RECT ClipRectangle;
NTSTATUS Status;
HANDLE ConsoleHandle;
HANDLE OutputHandle;
BOOLEAN UseClipRectangle;
COORD DestinationOrigin;
CHAR_INFO Fill;
@ -1373,17 +1373,17 @@ CSR_API(SrvScrollConsoleScreenBuffer)
DPRINT("SrvScrollConsoleScreenBuffer\n");
ConsoleHandle = ScrollConsoleScreenBufferRequest->ConsoleHandle;
UseClipRectangle = ScrollConsoleScreenBufferRequest->UseClipRectangle;
DestinationOrigin = ScrollConsoleScreenBufferRequest->DestinationOrigin;
Fill = ScrollConsoleScreenBufferRequest->Fill;
OutputHandle = ScrollScreenBufferRequest->OutputHandle;
UseClipRectangle = ScrollScreenBufferRequest->UseClipRectangle;
DestinationOrigin = ScrollScreenBufferRequest->DestinationOrigin;
Fill = ScrollScreenBufferRequest->Fill;
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), ConsoleHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Console = Buff->Header.Console;
ScrollRectangle = ScrollConsoleScreenBufferRequest->ScrollRectangle;
ScrollRectangle = ScrollScreenBufferRequest->ScrollRectangle;
/* Make sure source rectangle is inside the screen buffer */
ConioInitRect(&ScreenBuffer, 0, 0, Buff->MaxY - 1, Buff->MaxX - 1);
@ -1405,7 +1405,7 @@ CSR_API(SrvScrollConsoleScreenBuffer)
if (UseClipRectangle)
{
ClipRectangle = ScrollConsoleScreenBufferRequest->ClipRectangle;
ClipRectangle = ScrollScreenBufferRequest->ClipRectangle;
if (!ConioGetIntersection(&ClipRectangle, &ClipRectangle, &ScreenBuffer))
{
ConioUnlockScreenBuffer(Buff);
@ -1423,7 +1423,7 @@ CSR_API(SrvScrollConsoleScreenBuffer)
DestinationOrigin.Y + ConioRectHeight(&SrcRegion) - 1,
DestinationOrigin.X + ConioRectWidth(&SrcRegion) - 1);
if (ScrollConsoleScreenBufferRequest->Unicode)
if (ScrollScreenBufferRequest->Unicode)
ConsoleUnicodeCharToAnsiChar(Console, &FillChar, &Fill.Char.UnicodeChar);
else
FillChar = Fill.Char.AsciiChar;
@ -1448,13 +1448,13 @@ CSR_API(SrvScrollConsoleScreenBuffer)
CSR_API(SrvSetConsoleScreenBufferSize)
{
NTSTATUS Status;
PCSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferSize;
PCONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferSizeRequest;
PCSRSS_SCREEN_BUFFER Buff;
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetScreenBufferSize->OutputHandle, &Buff, GENERIC_WRITE);
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetScreenBufferSizeRequest->OutputHandle, &Buff, GENERIC_WRITE);
if (!NT_SUCCESS(Status)) return Status;
Status = ConioResizeBuffer(Buff->Header.Console, Buff, SetScreenBufferSize->Size);
Status = ConioResizeBuffer(Buff->Header.Console, Buff, SetScreenBufferSizeRequest->Size);
ConioUnlockScreenBuffer(Buff);
return Status;

View file

@ -234,12 +234,12 @@ CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLead
CSR_API(SrvOpenConsole)
{
NTSTATUS Status = STATUS_SUCCESS;
PCSRSS_OPEN_CONSOLE OpenConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.OpenConsoleRequest;
PCONSOLE_OPENCONSOLE OpenConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.OpenConsoleRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
DPRINT("SrvOpenConsole\n");
OpenConsoleRequest->Handle = INVALID_HANDLE_VALUE;
OpenConsoleRequest->ConsoleHandle = INVALID_HANDLE_VALUE;
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
@ -274,7 +274,7 @@ CSR_API(SrvOpenConsole)
else
{
Status = Win32CsrInsertObject(ProcessData,
&OpenConsoleRequest->Handle,
&OpenConsoleRequest->ConsoleHandle,
Object,
DesiredAccess,
OpenConsoleRequest->Inheritable,
@ -292,7 +292,7 @@ CSR_API(SrvOpenConsole)
CSR_API(SrvAllocConsole)
{
NTSTATUS Status = STATUS_SUCCESS;
PCSRSS_ALLOC_CONSOLE AllocConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.AllocConsoleRequest;
PCONSOLE_ALLOCCONSOLE AllocConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.AllocConsoleRequest;
PCSR_PROCESS ConsoleLeader = CsrGetClientThread()->Process;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(ConsoleLeader);
@ -522,7 +522,7 @@ ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags)
CSR_API(SrvSetConsoleMode)
{
NTSTATUS Status;
PCSRSS_CONSOLE_MODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
@ -556,7 +556,7 @@ CSR_API(SrvSetConsoleMode)
CSR_API(SrvGetConsoleMode)
{
NTSTATUS Status;
PCSRSS_CONSOLE_MODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
PCSRSS_CONSOLE Console;
PCSRSS_SCREEN_BUFFER Buff;
@ -590,7 +590,7 @@ CSR_API(SrvGetConsoleMode)
CSR_API(SrvSetConsoleTitle)
{
NTSTATUS Status;
PCSRSS_CONSOLE_TITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
PCSRSS_CONSOLE Console;
PWCHAR Buffer;
@ -640,7 +640,7 @@ CSR_API(SrvSetConsoleTitle)
CSR_API(SrvGetConsoleTitle)
{
NTSTATUS Status;
PCSRSS_CONSOLE_TITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
PCSRSS_CONSOLE Console;
DWORD Length;
@ -714,13 +714,13 @@ SetConsoleHardwareState(PCSRSS_CONSOLE Console, DWORD ConsoleHwState)
CSR_API(SrvGetConsoleHardwareState)
{
NTSTATUS Status;
PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest;
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvGetConsoleHardwareState\n");
Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
ConsoleHardwareStateRequest->ConsoleHandle,
HardwareStateRequest->OutputHandle,
&Console,
GENERIC_READ);
if (!NT_SUCCESS(Status))
@ -729,7 +729,7 @@ CSR_API(SrvGetConsoleHardwareState)
return Status;
}
ConsoleHardwareStateRequest->State = Console->HardwareState;
HardwareStateRequest->State = Console->HardwareState;
ConioUnlockConsole(Console);
@ -739,13 +739,13 @@ CSR_API(SrvGetConsoleHardwareState)
CSR_API(SrvSetConsoleHardwareState)
{
NTSTATUS Status;
PCSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleHardwareStateRequest;
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvSetConsoleHardwareState\n");
Status = ConioLockConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
ConsoleHardwareStateRequest->ConsoleHandle,
HardwareStateRequest->OutputHandle,
&Console,
GENERIC_READ);
if (!NT_SUCCESS(Status))
@ -755,7 +755,7 @@ CSR_API(SrvSetConsoleHardwareState)
}
DPRINT("Setting console hardware state.\n");
Status = SetConsoleHardwareState(Console, ConsoleHardwareStateRequest->State);
Status = SetConsoleHardwareState(Console, HardwareStateRequest->State);
ConioUnlockConsole(Console);
@ -765,7 +765,7 @@ CSR_API(SrvSetConsoleHardwareState)
CSR_API(SrvGetConsoleWindow)
{
NTSTATUS Status;
PCSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleWindowRequest;
PCONSOLE_GETWINDOW GetWindowRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetWindowRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvGetConsoleWindow\n");
@ -773,7 +773,7 @@ CSR_API(SrvGetConsoleWindow)
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (!NT_SUCCESS(Status)) return Status;
GetConsoleWindowRequest->WindowHandle = Console->hWindow;
GetWindowRequest->WindowHandle = Console->hWindow;
ConioUnlockConsole(Console);
return STATUS_SUCCESS;
@ -782,7 +782,7 @@ CSR_API(SrvGetConsoleWindow)
CSR_API(SrvSetConsoleIcon)
{
NTSTATUS Status;
PCSRSS_SET_CONSOLE_ICON SetConsoleIconRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetConsoleIconRequest;
PCONSOLE_SETICON SetIconRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetIconRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvSetConsoleIcon\n");
@ -790,7 +790,7 @@ CSR_API(SrvSetConsoleIcon)
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (!NT_SUCCESS(Status)) return Status;
Status = (ConioChangeIcon(Console, SetConsoleIconRequest->WindowIcon)
Status = (ConioChangeIcon(Console, SetIconRequest->WindowIcon)
? STATUS_SUCCESS
: STATUS_UNSUCCESSFUL);
@ -802,7 +802,7 @@ CSR_API(SrvSetConsoleIcon)
CSR_API(SrvGetConsoleCP)
{
NTSTATUS Status;
PCSRSS_CONSOLE_CP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvGetConsoleCP, getting %s Code Page\n",
@ -820,7 +820,7 @@ CSR_API(SrvGetConsoleCP)
CSR_API(SrvSetConsoleCP)
{
NTSTATUS Status;
PCSRSS_CONSOLE_CP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
PCSRSS_CONSOLE Console;
DPRINT("SrvSetConsoleCP, setting %s Code Page\n",
@ -847,7 +847,7 @@ CSR_API(SrvSetConsoleCP)
CSR_API(SrvGetConsoleProcessList)
{
NTSTATUS Status;
PCSRSS_GET_PROCESS_LIST GetProcessListRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetProcessListRequest;
PCONSOLE_GETPROCESSLIST GetProcessListRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetProcessListRequest;
PDWORD Buffer;
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
PCSRSS_CONSOLE Console;
@ -890,7 +890,7 @@ CSR_API(SrvGetConsoleProcessList)
CSR_API(SrvGenerateConsoleCtrlEvent)
{
NTSTATUS Status;
PCSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GenerateCtrlEvent;
PCONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GenerateCtrlEventRequest;
PCSRSS_CONSOLE Console;
PCONSOLE_PROCESS_DATA current;
PLIST_ENTRY current_entry;
@ -899,7 +899,7 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (!NT_SUCCESS(Status)) return Status;
Group = GenerateCtrlEvent->ProcessGroup;
Group = GenerateCtrlEventRequest->ProcessGroup;
Status = STATUS_INVALID_PARAMETER;
for (current_entry = Console->ProcessList.Flink;
current_entry != &Console->ProcessList;
@ -908,7 +908,7 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
current = CONTAINING_RECORD(current_entry, CONSOLE_PROCESS_DATA, ConsoleLink);
if (Group == 0 || current->Process->ProcessGroupId == Group)
{
ConioConsoleCtrlEvent(GenerateCtrlEvent->Event, current);
ConioConsoleCtrlEvent(GenerateCtrlEventRequest->Event, current);
Status = STATUS_SUCCESS;
}
}
@ -921,15 +921,15 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
CSR_API(SrvGetConsoleSelectionInfo)
{
NTSTATUS Status;
PCSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetConsoleSelectionInfo;
PCONSOLE_GETSELECTIONINFO GetSelectionInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetSelectionInfoRequest;
PCSRSS_CONSOLE Console;
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (NT_SUCCESS(Status))
{
memset(&GetConsoleSelectionInfo->Info, 0, sizeof(CONSOLE_SELECTION_INFO));
memset(&GetSelectionInfoRequest->Info, 0, sizeof(CONSOLE_SELECTION_INFO));
if (Console->Selection.dwFlags != 0)
GetConsoleSelectionInfo->Info = Console->Selection;
GetSelectionInfoRequest->Info = Console->Selection;
ConioUnlockConsole(Console);
}

View file

@ -573,23 +573,23 @@ ConsoleDisconnect(PCSR_PROCESS Process)
CSR_API(SrvCloseHandle)
{
PCSRSS_CLOSE_HANDLE CloseHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CloseHandleRequest;
PCONSOLE_CLOSEHANDLE CloseHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CloseHandleRequest;
return Win32CsrReleaseObject(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
CloseHandleRequest->Handle);
CloseHandleRequest->ConsoleHandle);
}
CSR_API(SrvVerifyConsoleIoHandle)
{
NTSTATUS Status = STATUS_SUCCESS;
PCSRSS_VERIFY_HANDLE VerifyHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.VerifyHandleRequest;
PCONSOLE_VERIFYHANDLE VerifyHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.VerifyHandleRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
HANDLE Handle = VerifyHandleRequest->Handle;
ULONG_PTR Index = (ULONG_PTR)Handle >> 2;
HANDLE ConsoleHandle = VerifyHandleRequest->ConsoleHandle;
ULONG_PTR Index = (ULONG_PTR)ConsoleHandle >> 2;
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
if (!IsConsoleHandle(Handle) ||
if (!IsConsoleHandle(ConsoleHandle) ||
Index >= ProcessData->HandleTableSize ||
ProcessData->HandleTable[Index].Object == NULL)
{
@ -606,18 +606,18 @@ CSR_API(SrvDuplicateHandle)
{
PCSRSS_HANDLE Entry;
DWORD DesiredAccess;
PCSRSS_DUPLICATE_HANDLE DuplicateHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.DuplicateHandleRequest;
PCONSOLE_DUPLICATEHANDLE DuplicateHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.DuplicateHandleRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
HANDLE Handle = DuplicateHandleRequest->Handle;
ULONG_PTR Index = (ULONG_PTR)Handle >> 2;
HANDLE ConsoleHandle = DuplicateHandleRequest->ConsoleHandle;
ULONG_PTR Index = (ULONG_PTR)ConsoleHandle >> 2;
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
if ( /** !IsConsoleHandle(Handle) || **/
if ( /** !IsConsoleHandle(ConsoleHandle) || **/
Index >= ProcessData->HandleTableSize ||
(Entry = &ProcessData->HandleTable[Index])->Object == NULL)
{
DPRINT1("Couldn't duplicate invalid handle %p\n", Handle);
DPRINT1("Couldn't duplicate invalid handle %p\n", ConsoleHandle);
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
return STATUS_INVALID_HANDLE;
}
@ -633,14 +633,14 @@ CSR_API(SrvDuplicateHandle)
if (~Entry->Access & DesiredAccess)
{
DPRINT1("Handle %p only has access %X; requested %X\n",
Handle, Entry->Access, DesiredAccess);
ConsoleHandle, Entry->Access, DesiredAccess);
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
return STATUS_INVALID_PARAMETER;
}
}
ApiMessage->Status = Win32CsrInsertObject(ProcessData,
&DuplicateHandleRequest->Handle, // Use the new handle value!
&DuplicateHandleRequest->ConsoleHandle, // Use the new handle value!
Entry->Object,
DesiredAccess,
DuplicateHandleRequest->Inheritable,

View file

@ -151,7 +151,7 @@ HistoryDeleteBuffer(PHISTORY_BUFFER Hist)
CSR_API(SrvGetConsoleCommandHistoryLength)
{
PCSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryLength;
PCONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryLengthRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
NTSTATUS Status;
@ -160,8 +160,8 @@ CSR_API(SrvGetConsoleCommandHistoryLength)
INT i;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&GetCommandHistoryLength->ExeName.Buffer,
GetCommandHistoryLength->ExeName.Length,
(PVOID*)&GetCommandHistoryLengthRequest->ExeName.Buffer,
GetCommandHistoryLengthRequest->ExeName.Length,
sizeof(BYTE)))
{
return STATUS_INVALID_PARAMETER;
@ -170,13 +170,13 @@ CSR_API(SrvGetConsoleCommandHistoryLength)
Status = ConioConsoleFromProcessData(ProcessData, &Console);
if (NT_SUCCESS(Status))
{
Hist = HistoryFindBuffer(Console, &GetCommandHistoryLength->ExeName);
Hist = HistoryFindBuffer(Console, &GetCommandHistoryLengthRequest->ExeName);
if (Hist)
{
for (i = 0; i < Hist->NumEntries; i++)
Length += Hist->Entries[i].Length + sizeof(WCHAR);
}
GetCommandHistoryLength->Length = Length;
GetCommandHistoryLengthRequest->Length = Length;
ConioUnlockConsole(Console);
}
return Status;
@ -184,22 +184,22 @@ CSR_API(SrvGetConsoleCommandHistoryLength)
CSR_API(SrvGetConsoleCommandHistory)
{
PCSRSS_GET_COMMAND_HISTORY GetCommandHistory = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistory;
PCONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
NTSTATUS Status;
PHISTORY_BUFFER Hist;
PBYTE Buffer = (PBYTE)GetCommandHistory->History;
ULONG BufferSize = GetCommandHistory->Length;
PBYTE Buffer = (PBYTE)GetCommandHistoryRequest->History;
ULONG BufferSize = GetCommandHistoryRequest->Length;
INT i;
if ( !CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&GetCommandHistory->History,
GetCommandHistory->Length,
(PVOID*)&GetCommandHistoryRequest->History,
GetCommandHistoryRequest->Length,
sizeof(BYTE)) ||
!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&GetCommandHistory->ExeName.Buffer,
GetCommandHistory->ExeName.Length,
(PVOID*)&GetCommandHistoryRequest->ExeName.Buffer,
GetCommandHistoryRequest->ExeName.Length,
sizeof(BYTE)) )
{
return STATUS_INVALID_PARAMETER;
@ -208,7 +208,7 @@ CSR_API(SrvGetConsoleCommandHistory)
Status = ConioConsoleFromProcessData(ProcessData, &Console);
if (NT_SUCCESS(Status))
{
Hist = HistoryFindBuffer(Console, &GetCommandHistory->ExeName);
Hist = HistoryFindBuffer(Console, &GetCommandHistoryRequest->ExeName);
if (Hist)
{
for (i = 0; i < Hist->NumEntries; i++)
@ -224,7 +224,7 @@ CSR_API(SrvGetConsoleCommandHistory)
Buffer += sizeof(WCHAR);
}
}
GetCommandHistory->Length = Buffer - (PBYTE)GetCommandHistory->History;
GetCommandHistoryRequest->Length = Buffer - (PBYTE)GetCommandHistoryRequest->History;
ConioUnlockConsole(Console);
}
return Status;
@ -232,15 +232,15 @@ CSR_API(SrvGetConsoleCommandHistory)
CSR_API(SrvExpungeConsoleCommandHistory)
{
PCSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ExpungeCommandHistory;
PCONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ExpungeCommandHistoryRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
PHISTORY_BUFFER Hist;
NTSTATUS Status;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&ExpungeCommandHistory->ExeName.Buffer,
ExpungeCommandHistory->ExeName.Length,
(PVOID*)&ExpungeCommandHistoryRequest->ExeName.Buffer,
ExpungeCommandHistoryRequest->ExeName.Length,
sizeof(BYTE)))
{
return STATUS_INVALID_PARAMETER;
@ -249,7 +249,7 @@ CSR_API(SrvExpungeConsoleCommandHistory)
Status = ConioConsoleFromProcessData(ProcessData, &Console);
if (NT_SUCCESS(Status))
{
Hist = HistoryFindBuffer(Console, &ExpungeCommandHistory->ExeName);
Hist = HistoryFindBuffer(Console, &ExpungeCommandHistoryRequest->ExeName);
HistoryDeleteBuffer(Hist);
ConioUnlockConsole(Console);
}
@ -258,17 +258,17 @@ CSR_API(SrvExpungeConsoleCommandHistory)
CSR_API(SrvSetConsoleNumberOfCommands)
{
PCSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryNumberCommands;
PCONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryNumberCommandsRequest;
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
PCSRSS_CONSOLE Console;
PHISTORY_BUFFER Hist;
NTSTATUS Status;
UINT MaxEntries = SetHistoryNumberCommands->NumCommands;
UINT MaxEntries = SetHistoryNumberCommandsRequest->NumCommands;
PUNICODE_STRING OldEntryList, NewEntryList;
if (!CsrValidateMessageBuffer(ApiMessage,
(PVOID*)&SetHistoryNumberCommands->ExeName.Buffer,
SetHistoryNumberCommands->ExeName.Length,
(PVOID*)&SetHistoryNumberCommandsRequest->ExeName.Buffer,
SetHistoryNumberCommandsRequest->ExeName.Length,
sizeof(BYTE)))
{
return STATUS_INVALID_PARAMETER;
@ -277,7 +277,7 @@ CSR_API(SrvSetConsoleNumberOfCommands)
Status = ConioConsoleFromProcessData(ProcessData, &Console);
if (NT_SUCCESS(Status))
{
Hist = HistoryFindBuffer(Console, &SetHistoryNumberCommands->ExeName);
Hist = HistoryFindBuffer(Console, &SetHistoryNumberCommandsRequest->ExeName);
if (Hist)
{
OldEntryList = Hist->Entries;
@ -309,7 +309,7 @@ CSR_API(SrvSetConsoleNumberOfCommands)
CSR_API(SrvGetConsoleHistory)
{
PCSRSS_HISTORY_INFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
PCSRSS_CONSOLE Console;
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (NT_SUCCESS(Status))
@ -324,7 +324,7 @@ CSR_API(SrvGetConsoleHistory)
CSR_API(SrvSetConsoleHistory)
{
PCSRSS_HISTORY_INFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
PCSRSS_CONSOLE Console;
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
if (NT_SUCCESS(Status))