-/* $Id: conio.c,v 1.6 2004/02/25 23:33:42 hbirr Exp $
+/* $Id: conio.c,v 1.7 2004/02/27 17:35:42 hbirr Exp $
*
* reactos/subsys/csrss/win32csr/conio.c
*
Console->ActiveEvent = CreateEventW(&SecurityAttributes, FALSE, FALSE, NULL);
if (NULL == Console->ActiveEvent)
{
+ RtlFreeUnicodeString(&Console->Title);
return STATUS_UNSUCCESSFUL;
}
Console->PrivateData = NULL;
+ RtlInitializeCriticalSection(&Console->Header.Lock);
GuiMode = DtbgIsDesktopVisible();
if (! GuiMode)
{
Status = GuiInitConsole(Console);
if (! NT_SUCCESS(Status))
{
+ RtlFreeUnicodeString(&Console->Title);
+ RtlDeleteCriticalSection(&Console->Header.Lock);
CloseHandle(Console->ActiveEvent);
return Status;
}
NewBuffer = HeapAlloc(Win32CsrApiHeap, 0, sizeof(CSRSS_SCREEN_BUFFER));
if (NULL == NewBuffer)
{
+ RtlFreeUnicodeString(&Console->Title);
+ RtlDeleteCriticalSection(&Console->Header.Lock);
CloseHandle(Console->ActiveEvent);
return STATUS_INSUFFICIENT_RESOURCES;
}
Status = CsrInitConsoleScreenBuffer(Console, NewBuffer);
if (! NT_SUCCESS(Status))
{
+ RtlFreeUnicodeString(&Console->Title);
+ RtlDeleteCriticalSection(&Console->Header.Lock);
CloseHandle(Console->ActiveEvent);
HeapFree(Win32CsrApiHeap, 0, NewBuffer);
return Status;
ConioCleanupConsole(Console);
CloseHandle(Console->ActiveEvent);
+ RtlDeleteCriticalSection(&Console->Header.Lock);
RtlFreeUnicodeString(&Console->Title);
HeapFree(Win32CsrApiHeap, 0, Console);
}
PCSRSS_CONSOLE Console;
PLIST_ENTRY CurrentItem;
DWORD NumEvents;
+ ConsoleInput *Input;
DPRINT("CsrGetNumberOfConsoleInputEvents\n");
return Reply->Status = Status;
}
- CurrentItem = &Console->InputEvents;
+ CurrentItem = Console->InputEvents.Flink;
NumEvents = 0;
/* If there are any events ... */
- if (CurrentItem->Flink != CurrentItem)
+ while (CurrentItem != &Console->InputEvents)
{
- do
+ Input = CONTAINING_RECORD(CurrentItem, ConsoleInput, ListEntry);
+ CurrentItem = CurrentItem->Flink;
+ if (!Input->Fake)
{
- CurrentItem = CurrentItem->Flink;
- ++NumEvents;
- }
- while (CurrentItem != &Console->InputEvents);
+ NumEvents++;
+ }
}
ConioUnlockConsole(Console);