NTSTATUS
TEXTMODE_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER* Buffer,
- IN OUT PCONSOLE Console,
+ IN PCONSOLE Console,
+ IN HANDLE ProcessHandle,
IN PTEXTMODE_BUFFER_INFO TextModeInfo);
NTSTATUS
GRAPHICS_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER* Buffer,
- IN OUT PCONSOLE Console,
+ IN PCONSOLE Console,
+ IN HANDLE ProcessHandle,
IN PGRAPHICS_BUFFER_INFO GraphicsInfo);
VOID
NTSTATUS
CONSOLE_SCREEN_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER* Buffer,
- IN OUT PCONSOLE Console,
+ IN PCONSOLE Console,
IN PCONSOLE_SCREEN_BUFFER_VTBL Vtbl,
IN SIZE_T Size)
{
// ConDrvCreateConsoleScreenBuffer
NTSTATUS
ConDrvCreateScreenBuffer(OUT PCONSOLE_SCREEN_BUFFER* Buffer,
- IN OUT PCONSOLE Console,
+ IN PCONSOLE Console,
+ IN HANDLE ProcessHandle OPTIONAL,
IN ULONG BufferType,
IN PVOID ScreenBufferInfo)
{
return STATUS_INVALID_PARAMETER;
}
+ /* Use the current process if ProcessHandle is NULL */
+ if (ProcessHandle == NULL)
+ ProcessHandle = NtCurrentProcess();
+
if (BufferType == CONSOLE_TEXTMODE_BUFFER)
{
- Status = TEXTMODE_BUFFER_Initialize(Buffer, Console,
+ Status = TEXTMODE_BUFFER_Initialize(Buffer, Console, ProcessHandle,
(PTEXTMODE_BUFFER_INFO)ScreenBufferInfo);
}
else if (BufferType == CONSOLE_GRAPHICS_BUFFER)
{
- Status = GRAPHICS_BUFFER_Initialize(Buffer, Console,
+ Status = GRAPHICS_BUFFER_Initialize(Buffer, Console, ProcessHandle,
(PGRAPHICS_BUFFER_INFO)ScreenBufferInfo);
}
else
/* PUBLIC DRIVER APIS *********************************************************/
-NTSTATUS NTAPI
-ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
- IN PTEXTMODE_SCREEN_BUFFER Buffer,
- IN PCHAR_CELL CharInfo/*Buffer*/,
- IN COORD CharInfoSize,
- IN OUT PSMALL_RECT WriteRegion,
- IN BOOLEAN DrawRegion);
NTSTATUS NTAPI
ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
IN PCONSOLE_SCREEN_BUFFER Buffer,
/* Validity check */
ASSERT(Console == Buffer->Header.Console);
- /* In text-mode only, draw the VDM buffer if present */
- if (GetType(Buffer) == TEXTMODE_BUFFER)
- {
- PTEXTMODE_SCREEN_BUFFER TextBuffer = (PTEXTMODE_SCREEN_BUFFER)Buffer;
-
- /*Status =*/ ConDrvWriteConsoleOutputVDM(Buffer->Header.Console,
- TextBuffer,
- Console->VDMBuffer,
- Console->VDMBufferSize,
- Region,
- FALSE);
- }
-
/* If the output buffer is the current one, redraw the correct portion of the screen */
if (Buffer == Console->ActiveBuffer) TermDrawRegion(Console, Region);