57 switch (
Buffer->Header.Type)
189 if (
Console->ActiveBuffer->Header.ReferenceCount == 0)
263 Buffer->PaletteUsage = PaletteUsage;
280 *CursorInfo =
Buffer->CursorInfo;
302 Visible = CursorInfo->bVisible;
305 (Visible && !
Buffer->CursorInfo.bVisible) ||
306 (!Visible &&
Buffer->CursorInfo.bVisible) )
309 Buffer->CursorInfo.bVisible = Visible;
322 SHORT OldCursorX, OldCursorY;
336 OldCursorX =
Buffer->CursorPosition.X;
337 OldCursorY =
Buffer->CursorPosition.Y;
NTSTATUS NTAPI ConDrvSetConsoleActiveScreenBuffer(IN PCONSOLE Console, IN PCONSOLE_SCREEN_BUFFER Buffer)
#define STATUS_INSUFFICIENT_RESOURCES
VOID NTAPI ConDrvDeleteScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer)
PCONSOLE_SCREEN_BUFFER ConDrvGetActiveScreenBuffer(IN PCONSOLE Console)
CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo
IN BOOLEAN OUT PSTR Buffer
#define STATUS_INVALID_PARAMETER
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
#define ConsoleAllocHeap(Flags, Size)
#define TermDrawRegion(Console, Region)
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
NTSTATUS TEXTMODE_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER *Buffer, IN PCONSOLE Console, IN HANDLE ProcessHandle, IN PTEXTMODE_BUFFER_INFO TextModeInfo)
NTSTATUS ConDrvCreateScreenBuffer(OUT PCONSOLE_SCREEN_BUFFER *Buffer, IN PCONSOLE Console, IN HANDLE ProcessHandle OPTIONAL, IN ULONG BufferType, IN PVOID ScreenBufferInfo)
static HPALETTE PaletteHandle
NTSTATUS NTAPI ConDrvGetConsoleCursorInfo(IN PCONSOLE Console, IN PTEXTMODE_SCREEN_BUFFER Buffer, OUT PCONSOLE_CURSOR_INFO CursorInfo)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
VOID TEXTMODE_BUFFER_Destroy(IN OUT PCONSOLE_SCREEN_BUFFER Buffer)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define TermSetScreenInfo(Console, ScreenBuffer, OldCursorX, OldCursorY)
#define TermSetActiveScreenBuffer(Console)
NTSTATUS CONSOLE_SCREEN_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER *Buffer, IN PCONSOLE Console, IN CONSOLE_IO_OBJECT_TYPE Type, IN SIZE_T Size)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define NtCurrentProcess()
NTSTATUS NTAPI ConDrvSetConsolePalette(IN PCONSOLE Console, IN PCONSOLE_SCREEN_BUFFER Buffer, IN HPALETTE PaletteHandle, IN UINT PaletteUsage)
#define SYSPAL_NOSTATIC256
#define NT_SUCCESS(StatCode)
NTSTATUS GRAPHICS_BUFFER_Initialize(OUT PCONSOLE_SCREEN_BUFFER *Buffer, IN PCONSOLE Console, IN HANDLE ProcessHandle, IN PGRAPHICS_BUFFER_INFO GraphicsInfo)
NTSTATUS NTAPI ConDrvSetConsoleCursorPosition(IN PCONSOLE Console, IN PTEXTMODE_SCREEN_BUFFER Buffer, IN PCOORD Position)
static VOID ConioSetActiveScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer)
#define STATUS_UNSUCCESSFUL
NTSTATUS NTAPI ConDrvSetConsoleCursorInfo(IN PCONSOLE Console, IN PTEXTMODE_SCREEN_BUFFER Buffer, IN PCONSOLE_CURSOR_INFO CursorInfo)
#define TermSetPalette(Console, PaletteHandle, PaletteUsage)
VOID ConSrvInitObject(IN OUT PCONSOLE_IO_OBJECT Object, IN CONSOLE_IO_OBJECT_TYPE Type, IN PCONSOLE Console)
#define TermSetCursorInfo(Console, ScreenBuffer)
#define CONSOLE_TEXTMODE_BUFFER
#define CONSOLE_GRAPHICS_BUFFER
NTSTATUS NTAPI ConDrvInvalidateBitMapRect(IN PCONSOLE Console, IN PCONSOLE_SCREEN_BUFFER Buffer, IN PSMALL_RECT Region)
#define ConsoleFreeHeap(HeapBase)
VOID GRAPHICS_BUFFER_Destroy(IN OUT PCONSOLE_SCREEN_BUFFER Buffer)
VOID CONSOLE_SCREEN_BUFFER_Destroy(IN OUT PCONSOLE_SCREEN_BUFFER Buffer)
_In_ HANDLE ProcessHandle
enum _CONSOLE_IO_OBJECT_TYPE CONSOLE_IO_OBJECT_TYPE
#define TermReleaseScreenBuffer(Console, ScreenBuffer)
PULONG MinorVersion OPTIONAL