mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
[CONSRV]
- Use the ConsoleGetPerProcessData macro (--> CONSOLE_PROCESS_DATA structure). - Do not forget to leave a critical section if we fail. svn path=/branches/ros-csrss/; revision=57731
This commit is contained in:
@@ -1239,23 +1239,24 @@ CSR_API(CsrSetTextAttrib)
|
||||
|
||||
CSR_API(SrvCreateConsoleScreenBuffer)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PCSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CreateScreenBufferRequest;
|
||||
PCSR_PROCESS ProcessData = CsrGetClientThread()->Process;
|
||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||
PCSRSS_CONSOLE Console;
|
||||
PCSRSS_SCREEN_BUFFER Buff;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT("SrvCreateConsoleScreenBuffer\n");
|
||||
|
||||
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
|
||||
|
||||
Status = ConioConsoleFromProcessData(ProcessData, &Console);
|
||||
if (! NT_SUCCESS(Status))
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Buff = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
|
||||
|
||||
if (Buff != NULL)
|
||||
{
|
||||
if (Console->ActiveBuffer)
|
||||
@@ -1298,7 +1299,9 @@ CSR_API(SrvCreateConsoleScreenBuffer)
|
||||
}
|
||||
|
||||
ConioUnlockConsole(Console);
|
||||
|
||||
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user