[KERNEL32-CONSRV]

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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