mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 02:03:07 +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
12 changed files with 623 additions and 629 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue