mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 07:05:12 +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:
parent
a4ef6acb0a
commit
f079b2b2b6
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue