mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 07:05:12 +00:00
[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:
parent
51aa122e2d
commit
86fa2ba4e0
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Reference in a new issue