mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 08:43:04 +00:00
- Initialize the csr request inside the loop, if CsrClientCallServer is called inside a loop.
svn path=/trunk/; revision=18745
This commit is contained in:
parent
3df6f62217
commit
d82094a55c
1 changed files with 15 additions and 13 deletions
|
@ -1116,11 +1116,12 @@ IntWriteConsole(HANDLE hConsoleOutput,
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE, CSR_CONSOLE);
|
||||||
Request->Data.WriteConsoleRequest.ConsoleHandle = hConsoleOutput;
|
|
||||||
Request->Data.WriteConsoleRequest.Unicode = bUnicode;
|
|
||||||
|
|
||||||
while(nNumberOfCharsToWrite > 0)
|
while(nNumberOfCharsToWrite > 0)
|
||||||
{
|
{
|
||||||
|
Request->Data.WriteConsoleRequest.ConsoleHandle = hConsoleOutput;
|
||||||
|
Request->Data.WriteConsoleRequest.Unicode = bUnicode;
|
||||||
|
|
||||||
nChars = min(nNumberOfCharsToWrite, CSRSS_MAX_WRITE_CONSOLE / CharSize);
|
nChars = min(nNumberOfCharsToWrite, CSRSS_MAX_WRITE_CONSOLE / CharSize);
|
||||||
Request->Data.WriteConsoleRequest.NrCharactersToWrite = nChars;
|
Request->Data.WriteConsoleRequest.NrCharactersToWrite = nChars;
|
||||||
|
|
||||||
|
@ -1224,6 +1225,7 @@ IntReadConsole(HANDLE hConsoleInput,
|
||||||
}
|
}
|
||||||
|
|
||||||
Request->Status = STATUS_SUCCESS;
|
Request->Status = STATUS_SUCCESS;
|
||||||
|
CsrRequest = MAKE_CSR_API(READ_CONSOLE, CSR_CONSOLE);
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -1237,7 +1239,6 @@ IntReadConsole(HANDLE hConsoleInput,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(READ_CONSOLE, CSR_CONSOLE);
|
|
||||||
Request->Data.ReadConsoleRequest.ConsoleHandle = hConsoleInput;
|
Request->Data.ReadConsoleRequest.ConsoleHandle = hConsoleInput;
|
||||||
Request->Data.ReadConsoleRequest.Unicode = bUnicode;
|
Request->Data.ReadConsoleRequest.Unicode = bUnicode;
|
||||||
Request->Data.ReadConsoleRequest.NrCharactersToRead = min(nNumberOfCharsToRead, CSRSS_MAX_READ_CONSOLE / CharSize);
|
Request->Data.ReadConsoleRequest.NrCharactersToRead = min(nNumberOfCharsToRead, CSRSS_MAX_READ_CONSOLE / CharSize);
|
||||||
|
@ -1659,12 +1660,11 @@ IntReadConsoleInput(HANDLE hConsoleInput,
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(READ_INPUT, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(READ_INPUT, CSR_CONSOLE);
|
||||||
Request.Data.ReadInputRequest.ConsoleHandle = hConsoleInput;
|
|
||||||
Request.Data.ReadInputRequest.Unicode = bUnicode;
|
|
||||||
|
|
||||||
Read = 0;
|
Read = 0;
|
||||||
while(nLength > 0)
|
while(nLength > 0)
|
||||||
{
|
{
|
||||||
|
Request.Data.ReadInputRequest.ConsoleHandle = hConsoleInput;
|
||||||
|
Request.Data.ReadInputRequest.Unicode = bUnicode;
|
||||||
Status = CsrClientCallServer(&Request, NULL,
|
Status = CsrClientCallServer(&Request, NULL,
|
||||||
CsrRequest,
|
CsrRequest,
|
||||||
sizeof(CSR_API_MESSAGE));
|
sizeof(CSR_API_MESSAGE));
|
||||||
|
@ -2114,14 +2114,14 @@ IntReadConsoleOutputCharacter(HANDLE hConsoleOutput,
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(READ_CONSOLE_OUTPUT_CHAR, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(READ_CONSOLE_OUTPUT_CHAR, CSR_CONSOLE);
|
||||||
Request->Data.ReadConsoleOutputCharRequest.ConsoleHandle = hConsoleOutput;
|
|
||||||
Request->Data.ReadConsoleOutputCharRequest.Unicode = bUnicode;
|
|
||||||
Request->Data.ReadConsoleOutputCharRequest.ReadCoord = dwReadCoord;
|
Request->Data.ReadConsoleOutputCharRequest.ReadCoord = dwReadCoord;
|
||||||
|
|
||||||
while(nLength > 0)
|
while(nLength > 0)
|
||||||
{
|
{
|
||||||
DWORD BytesRead;
|
DWORD BytesRead;
|
||||||
|
|
||||||
|
Request->Data.ReadConsoleOutputCharRequest.ConsoleHandle = hConsoleOutput;
|
||||||
|
Request->Data.ReadConsoleOutputCharRequest.Unicode = bUnicode;
|
||||||
Request->Data.ReadConsoleOutputCharRequest.NumCharsToRead = min(nLength, nChars);
|
Request->Data.ReadConsoleOutputCharRequest.NumCharsToRead = min(nLength, nChars);
|
||||||
SizeBytes = Request->Data.ReadConsoleOutputCharRequest.NumCharsToRead * CharSize;
|
SizeBytes = Request->Data.ReadConsoleOutputCharRequest.NumCharsToRead * CharSize;
|
||||||
|
|
||||||
|
@ -2238,11 +2238,12 @@ ReadConsoleOutputAttribute(
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(READ_CONSOLE_OUTPUT_ATTRIB, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(READ_CONSOLE_OUTPUT_ATTRIB, CSR_CONSOLE);
|
||||||
Request->Data.ReadConsoleOutputAttribRequest.ConsoleHandle = hConsoleOutput;
|
|
||||||
Request->Data.ReadConsoleOutputAttribRequest.ReadCoord = dwReadCoord;
|
|
||||||
|
|
||||||
while (nLength != 0)
|
while (nLength != 0)
|
||||||
{
|
{
|
||||||
|
Request->Data.ReadConsoleOutputAttribRequest.ConsoleHandle = hConsoleOutput;
|
||||||
|
Request->Data.ReadConsoleOutputAttribRequest.ReadCoord = dwReadCoord;
|
||||||
|
|
||||||
if (nLength > CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB / sizeof(WORD))
|
if (nLength > CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB / sizeof(WORD))
|
||||||
Size = CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB / sizeof(WCHAR);
|
Size = CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB / sizeof(WCHAR);
|
||||||
else
|
else
|
||||||
|
@ -2303,14 +2304,14 @@ IntWriteConsoleOutputCharacter(HANDLE hConsoleOutput,
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE_OUTPUT_CHAR, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE_OUTPUT_CHAR, CSR_CONSOLE);
|
||||||
Request->Data.WriteConsoleOutputCharRequest.ConsoleHandle = hConsoleOutput;
|
|
||||||
Request->Data.WriteConsoleOutputCharRequest.Unicode = bUnicode;
|
|
||||||
Request->Data.WriteConsoleOutputCharRequest.Coord = dwWriteCoord;
|
Request->Data.WriteConsoleOutputCharRequest.Coord = dwWriteCoord;
|
||||||
|
|
||||||
while(nLength > 0)
|
while(nLength > 0)
|
||||||
{
|
{
|
||||||
DWORD BytesWrite;
|
DWORD BytesWrite;
|
||||||
|
|
||||||
|
Request->Data.WriteConsoleOutputCharRequest.ConsoleHandle = hConsoleOutput;
|
||||||
|
Request->Data.WriteConsoleOutputCharRequest.Unicode = bUnicode;
|
||||||
Request->Data.WriteConsoleOutputCharRequest.Length = min(nLength, nChars);
|
Request->Data.WriteConsoleOutputCharRequest.Length = min(nLength, nChars);
|
||||||
BytesWrite = Request->Data.WriteConsoleOutputCharRequest.Length * CharSize;
|
BytesWrite = Request->Data.WriteConsoleOutputCharRequest.Length * CharSize;
|
||||||
|
|
||||||
|
@ -2419,13 +2420,14 @@ WriteConsoleOutputAttribute(
|
||||||
}
|
}
|
||||||
|
|
||||||
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE_OUTPUT_ATTRIB, CSR_CONSOLE);
|
CsrRequest = MAKE_CSR_API(WRITE_CONSOLE_OUTPUT_ATTRIB, CSR_CONSOLE);
|
||||||
Request->Data.WriteConsoleOutputAttribRequest.ConsoleHandle = hConsoleOutput;
|
|
||||||
Request->Data.WriteConsoleOutputAttribRequest.Coord = dwWriteCoord;
|
Request->Data.WriteConsoleOutputAttribRequest.Coord = dwWriteCoord;
|
||||||
|
|
||||||
if( lpNumberOfAttrsWritten )
|
if( lpNumberOfAttrsWritten )
|
||||||
*lpNumberOfAttrsWritten = nLength;
|
*lpNumberOfAttrsWritten = nLength;
|
||||||
while( nLength )
|
while( nLength )
|
||||||
{
|
{
|
||||||
Size = min(nLength, CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB / sizeof(WORD));
|
Size = min(nLength, CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB / sizeof(WORD));
|
||||||
|
Request->Data.WriteConsoleOutputAttribRequest.ConsoleHandle = hConsoleOutput;
|
||||||
Request->Data.WriteConsoleOutputAttribRequest.Length = Size;
|
Request->Data.WriteConsoleOutputAttribRequest.Length = Size;
|
||||||
memcpy(Request->Data.WriteConsoleOutputAttribRequest.Attribute, lpAttribute, Size * sizeof(WORD));
|
memcpy(Request->Data.WriteConsoleOutputAttribRequest.Attribute, lpAttribute, Size * sizeof(WORD));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue