/* Initialize the ConSrv terminal */
Terminal->Vtbl = &ConSrvTermVtbl;
// Terminal->Console will be initialized by ConDrvRegisterTerminal
- Terminal->Data = FrontEnd; /* We store the frontend pointer in the terminal private data */
+ Terminal->Context = FrontEnd; /* We store the frontend pointer in the terminal private context */
return STATUS_SUCCESS;
}
ConSrvDeinitTerminal(IN OUT PTERMINAL Terminal)
{
NTSTATUS Status = STATUS_SUCCESS;
- PFRONTEND FrontEnd = Terminal->Data;
+ PFRONTEND FrontEnd = Terminal->Context;
/* Reset the ConSrv terminal */
- Terminal->Data = NULL;
+ Terminal->Context = NULL;
Terminal->Vtbl = NULL;
/* Unload the frontend */
IN PCONSOLE Console)
{
NTSTATUS Status;
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
/* Initialize the console pointer for our frontend */
FrontEnd->Console = Console;
static VOID NTAPI
ConSrvTermDeinitTerminal(IN OUT PTERMINAL This)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->DeinitFrontEnd(FrontEnd);
}
static NTSTATUS NTAPI
ConSrvTermReadStream(IN OUT PTERMINAL This,
- /**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
IN BOOLEAN Unicode,
/**PWCHAR Buffer,**/
OUT PVOID Buffer,
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
+ IN PVOID Parameter OPTIONAL,
IN ULONG NumCharsToRead,
OUT PULONG NumCharsRead OPTIONAL)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
PCONSRV_CONSOLE Console = FrontEnd->Console;
PCONSOLE_INPUT_BUFFER InputBuffer = &Console->InputBuffer;
+ PUNICODE_STRING ExeName = Parameter;
// STATUS_PENDING : Wait if more to read ; STATUS_SUCCESS : Don't wait.
NTSTATUS Status = STATUS_PENDING;
DWORD Length,
BOOL Attrib)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
return ConioWriteConsole(FrontEnd,
Buff,
Buffer,
+VOID
+ConioDrawConsole(PCONSRV_CONSOLE Console)
+{
+ SMALL_RECT Region;
+ PCONSOLE_SCREEN_BUFFER ActiveBuffer = Console->ActiveBuffer;
+
+ if (!ActiveBuffer) return;
+
+ ConioInitRect(&Region, 0, 0,
+ ActiveBuffer->ViewSize.Y - 1,
+ ActiveBuffer->ViewSize.X - 1);
+ TermDrawRegion(Console, &Region);
+ // Console->FrontEndIFace.Vtbl->DrawRegion(&Console->FrontEndIFace, &Region);
+}
+
static VOID NTAPI
ConSrvTermDrawRegion(IN OUT PTERMINAL This,
SMALL_RECT* Region)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->DrawRegion(FrontEnd, Region);
}
ConSrvTermSetCursorInfo(IN OUT PTERMINAL This,
PCONSOLE_SCREEN_BUFFER ScreenBuffer)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
return FrontEnd->Vtbl->SetCursorInfo(FrontEnd, ScreenBuffer);
}
SHORT OldCursorX,
SHORT OldCursorY)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
return FrontEnd->Vtbl->SetScreenInfo(FrontEnd,
ScreenBuffer,
OldCursorX,
static VOID NTAPI
ConSrvTermResizeTerminal(IN OUT PTERMINAL This)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->ResizeTerminal(FrontEnd);
}
static VOID NTAPI
ConSrvTermSetActiveScreenBuffer(IN OUT PTERMINAL This)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->SetActiveScreenBuffer(FrontEnd);
}
ConSrvTermReleaseScreenBuffer(IN OUT PTERMINAL This,
IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->ReleaseScreenBuffer(FrontEnd, ScreenBuffer);
}
ConSrvTermGetLargestConsoleWindowSize(IN OUT PTERMINAL This,
PCOORD pSize)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
FrontEnd->Vtbl->GetLargestConsoleWindowSize(FrontEnd, pSize);
}
HPALETTE PaletteHandle,
UINT PaletteUsage)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
return FrontEnd->Vtbl->SetPalette(FrontEnd, PaletteHandle, PaletteUsage);
}
ConSrvTermShowMouseCursor(IN OUT PTERMINAL This,
BOOL Show)
{
- PFRONTEND FrontEnd = This->Data;
+ PFRONTEND FrontEnd = This->Context;
return FrontEnd->Vtbl->ShowMouseCursor(FrontEnd, Show);
}