mirror of
https://github.com/reactos/reactos.git
synced 2025-04-21 12:40:33 +00:00
[CONSRV]
Renaming CSRSS_... structures into CONSOLE_... svn path=/branches/ros-csrss/; revision=58120
This commit is contained in:
parent
86fa2ba4e0
commit
fc78a963d0
12 changed files with 239 additions and 239 deletions
|
@ -18,18 +18,18 @@
|
||||||
|
|
||||||
/* TYPES **********************************************************************/
|
/* TYPES **********************************************************************/
|
||||||
|
|
||||||
typedef struct tagALIAS_ENTRY
|
typedef struct _ALIAS_ENTRY
|
||||||
{
|
{
|
||||||
LPCWSTR lpSource;
|
LPCWSTR lpSource;
|
||||||
LPCWSTR lpTarget;
|
LPCWSTR lpTarget;
|
||||||
struct tagALIAS_ENTRY* Next;
|
struct _ALIAS_ENTRY* Next;
|
||||||
} ALIAS_ENTRY, *PALIAS_ENTRY;
|
} ALIAS_ENTRY, *PALIAS_ENTRY;
|
||||||
|
|
||||||
typedef struct tagALIAS_HEADER
|
typedef struct _ALIAS_HEADER
|
||||||
{
|
{
|
||||||
LPCWSTR lpExeName;
|
LPCWSTR lpExeName;
|
||||||
PALIAS_ENTRY Data;
|
PALIAS_ENTRY Data;
|
||||||
struct tagALIAS_HEADER* Next;
|
struct _ALIAS_HEADER* Next;
|
||||||
} ALIAS_HEADER, *PALIAS_HEADER;
|
} ALIAS_HEADER, *PALIAS_HEADER;
|
||||||
|
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ IntDeleteAllAliases(PALIAS_HEADER RootHeader)
|
||||||
CSR_API(SrvAddConsoleAlias)
|
CSR_API(SrvAddConsoleAlias)
|
||||||
{
|
{
|
||||||
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
|
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PALIAS_HEADER Header;
|
PALIAS_HEADER Header;
|
||||||
PALIAS_ENTRY Entry;
|
PALIAS_ENTRY Entry;
|
||||||
LPWSTR lpSource, lpTarget, lpExeName;
|
LPWSTR lpSource, lpTarget, lpExeName;
|
||||||
|
@ -374,7 +374,7 @@ CSR_API(SrvAddConsoleAlias)
|
||||||
CSR_API(SrvGetConsoleAlias)
|
CSR_API(SrvGetConsoleAlias)
|
||||||
{
|
{
|
||||||
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
|
PCONSOLE_ADDGETALIAS ConsoleAliasRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleAliasRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PALIAS_HEADER Header;
|
PALIAS_HEADER Header;
|
||||||
PALIAS_ENTRY Entry;
|
PALIAS_ENTRY Entry;
|
||||||
UINT Length;
|
UINT Length;
|
||||||
|
@ -447,7 +447,7 @@ CSR_API(SrvGetConsoleAlias)
|
||||||
CSR_API(SrvGetConsoleAliases)
|
CSR_API(SrvGetConsoleAliases)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETALLALIASES GetAllAliasesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesRequest;
|
PCONSOLE_GETALLALIASES GetAllAliasesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
ULONG BytesWritten;
|
ULONG BytesWritten;
|
||||||
PALIAS_HEADER Header;
|
PALIAS_HEADER Header;
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ CSR_API(SrvGetConsoleAliases)
|
||||||
CSR_API(SrvGetConsoleAliasesLength)
|
CSR_API(SrvGetConsoleAliasesLength)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesLengthRequest;
|
PCONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAllAliasesLengthRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PALIAS_HEADER Header;
|
PALIAS_HEADER Header;
|
||||||
UINT Length;
|
UINT Length;
|
||||||
|
|
||||||
|
@ -538,7 +538,7 @@ CSR_API(SrvGetConsoleAliasesLength)
|
||||||
CSR_API(SrvGetConsoleAliasExes)
|
CSR_API(SrvGetConsoleAliasExes)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETALIASESEXES GetAliasesExesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesRequest;
|
PCONSOLE_GETALIASESEXES GetAliasesExesRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
UINT BytesWritten;
|
UINT BytesWritten;
|
||||||
UINT ExesLength;
|
UINT ExesLength;
|
||||||
|
|
||||||
|
@ -584,7 +584,7 @@ CSR_API(SrvGetConsoleAliasExes)
|
||||||
CSR_API(SrvGetConsoleAliasExesLength)
|
CSR_API(SrvGetConsoleAliasExesLength)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesLengthRequest;
|
PCONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetAliasesExesLengthRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
DPRINT("SrvGetConsoleAliasExesLength entered\n");
|
DPRINT("SrvGetConsoleAliasExesLength entered\n");
|
||||||
|
|
||||||
ApiMessage->Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
ApiMessage->Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
||||||
|
|
|
@ -28,14 +28,14 @@
|
||||||
typedef struct _GET_INPUT_INFO
|
typedef struct _GET_INPUT_INFO
|
||||||
{
|
{
|
||||||
PCONSOLE_PROCESS_DATA ProcessData;
|
PCONSOLE_PROCESS_DATA ProcessData;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
} GET_INPUT_INFO, *PGET_INPUT_INFO;
|
} GET_INPUT_INFO, *PGET_INPUT_INFO;
|
||||||
|
|
||||||
|
|
||||||
/* PRIVATE FUNCTIONS **********************************************************/
|
/* PRIVATE FUNCTIONS **********************************************************/
|
||||||
|
|
||||||
static VOID FASTCALL
|
static VOID FASTCALL
|
||||||
ConioInputEventToAnsi(PCSRSS_CONSOLE Console, PINPUT_RECORD InputEvent)
|
ConioInputEventToAnsi(PCONSOLE Console, PINPUT_RECORD InputEvent)
|
||||||
{
|
{
|
||||||
if (InputEvent->EventType == KEY_EVENT)
|
if (InputEvent->EventType == KEY_EVENT)
|
||||||
{
|
{
|
||||||
|
@ -48,7 +48,7 @@ ConioInputEventToAnsi(PCSRSS_CONSOLE Console, PINPUT_RECORD InputEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS FASTCALL
|
static NTSTATUS FASTCALL
|
||||||
ConioProcessChar(PCSRSS_CONSOLE Console,
|
ConioProcessChar(PCONSOLE Console,
|
||||||
PINPUT_RECORD InputEvent)
|
PINPUT_RECORD InputEvent)
|
||||||
{
|
{
|
||||||
ConsoleInput *ConInRec;
|
ConsoleInput *ConInRec;
|
||||||
|
@ -127,7 +127,7 @@ ConioGetShiftState(PBYTE KeyState)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID WINAPI
|
VOID WINAPI
|
||||||
ConioProcessKey(MSG *msg, PCSRSS_CONSOLE Console, BOOL TextMode)
|
ConioProcessKey(MSG *msg, PCONSOLE Console, BOOL TextMode)
|
||||||
{
|
{
|
||||||
static BYTE KeyState[256] = { 0 };
|
static BYTE KeyState[256] = { 0 };
|
||||||
/* MSDN mentions that you should use the last virtual key code received
|
/* MSDN mentions that you should use the last virtual key code received
|
||||||
|
@ -626,7 +626,7 @@ CSR_API(SrvGetConsoleInput)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETINPUT GetInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetInputRequest;
|
PCONSOLE_GETINPUT GetInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetInputRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
GET_INPUT_INFO InputInfo;
|
GET_INPUT_INFO InputInfo;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleInput\n");
|
DPRINT("SrvGetConsoleInput\n");
|
||||||
|
@ -666,7 +666,7 @@ CSR_API(SrvWriteConsoleInput)
|
||||||
PCONSOLE_WRITEINPUT WriteInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteInputRequest;
|
PCONSOLE_WRITEINPUT WriteInputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteInputRequest;
|
||||||
PINPUT_RECORD InputRecord;
|
PINPUT_RECORD InputRecord;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
DWORD Length;
|
DWORD Length;
|
||||||
DWORD i;
|
DWORD i;
|
||||||
|
|
||||||
|
@ -712,7 +712,7 @@ CSR_API(SrvReadConsole)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_READCONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
|
PCONSOLE_READCONSOLE ReadConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadConsoleRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
GET_INPUT_INFO InputInfo;
|
GET_INPUT_INFO InputInfo;
|
||||||
|
|
||||||
DPRINT("SrvReadConsole\n");
|
DPRINT("SrvReadConsole\n");
|
||||||
|
@ -756,7 +756,7 @@ CSR_API(SrvFlushConsoleInputBuffer)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FlushInputBufferRequest;
|
PCONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FlushInputBufferRequest;
|
||||||
PLIST_ENTRY CurrentEntry;
|
PLIST_ENTRY CurrentEntry;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
ConsoleInput* Input;
|
ConsoleInput* Input;
|
||||||
|
|
||||||
DPRINT("SrvFlushConsoleInputBuffer\n");
|
DPRINT("SrvFlushConsoleInputBuffer\n");
|
||||||
|
@ -786,7 +786,7 @@ CSR_API(SrvGetConsoleNumberOfInputEvents)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetNumInputEventsRequest;
|
PCONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetNumInputEventsRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PLIST_ENTRY CurrentInput;
|
PLIST_ENTRY CurrentInput;
|
||||||
DWORD NumEvents;
|
DWORD NumEvents;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
* internally, I just wrap back to the top of the buffer. *
|
* internally, I just wrap back to the top of the buffer. *
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
typedef struct tagCSRSS_SCREEN_BUFFER
|
typedef struct _CONSOLE_SCREEN_BUFFER
|
||||||
{
|
{
|
||||||
Object_t Header; /* Object header */
|
Object_t Header; /* Object header */
|
||||||
BYTE *Buffer; /* pointer to screen buffer */
|
BYTE *Buffer; /* pointer to screen buffer */
|
||||||
|
@ -39,16 +39,16 @@ typedef struct tagCSRSS_SCREEN_BUFFER
|
||||||
CONSOLE_CURSOR_INFO CursorInfo;
|
CONSOLE_CURSOR_INFO CursorInfo;
|
||||||
USHORT Mode;
|
USHORT Mode;
|
||||||
LIST_ENTRY ListEntry; /* entry in console's list of buffers */
|
LIST_ENTRY ListEntry; /* entry in console's list of buffers */
|
||||||
} CSRSS_SCREEN_BUFFER, *PCSRSS_SCREEN_BUFFER;
|
} CONSOLE_SCREEN_BUFFER, *PCONSOLE_SCREEN_BUFFER;
|
||||||
|
|
||||||
typedef struct tagCSRSS_CONSOLE
|
typedef struct _CONSOLE
|
||||||
{
|
{
|
||||||
Object_t Header; /* Object header */
|
Object_t Header; /* Object header */
|
||||||
LONG ReferenceCount;
|
LONG ReferenceCount;
|
||||||
CRITICAL_SECTION Lock;
|
CRITICAL_SECTION Lock;
|
||||||
|
|
||||||
struct tagCSRSS_CONSOLE *Prev, *Next; /* Next and Prev consoles in console wheel */
|
struct _CONSOLE *Prev, *Next; /* Next and Prev consoles in console wheel */
|
||||||
struct tagCSRSS_CONSOLE_VTBL *Vtbl; /* Using CUI or GUI consoles */
|
struct _CONSOLE_VTBL *Vtbl; /* Using CUI or GUI consoles */
|
||||||
|
|
||||||
CLIENT_ID ConsoleLeaderCID; /* Contains the Console Leader Process CID */
|
CLIENT_ID ConsoleLeaderCID; /* Contains the Console Leader Process CID */
|
||||||
LIST_ENTRY ProcessList;
|
LIST_ENTRY ProcessList;
|
||||||
|
@ -66,14 +66,14 @@ typedef struct tagCSRSS_CONSOLE
|
||||||
BOOLEAN LineInsertToggle; /* replace character over cursor instead of inserting */
|
BOOLEAN LineInsertToggle; /* replace character over cursor instead of inserting */
|
||||||
ULONG LineWakeupMask; /* bitmap of which control characters will end line input */
|
ULONG LineWakeupMask; /* bitmap of which control characters will end line input */
|
||||||
|
|
||||||
struct tagALIAS_HEADER *Aliases;
|
struct _ALIAS_HEADER *Aliases;
|
||||||
LIST_ENTRY HistoryBuffers;
|
LIST_ENTRY HistoryBuffers;
|
||||||
UINT HistoryBufferSize; /* size for newly created history buffers */
|
UINT HistoryBufferSize; /* size for newly created history buffers */
|
||||||
UINT NumberOfHistoryBuffers; /* maximum number of history buffers allowed */
|
UINT NumberOfHistoryBuffers; /* maximum number of history buffers allowed */
|
||||||
BOOLEAN HistoryNoDup; /* remove old duplicate history entries */
|
BOOLEAN HistoryNoDup; /* remove old duplicate history entries */
|
||||||
|
|
||||||
LIST_ENTRY BufferList; /* List of all screen buffers for this console */
|
LIST_ENTRY BufferList; /* List of all screen buffers for this console */
|
||||||
PCSRSS_SCREEN_BUFFER ActiveBuffer; /* Pointer to currently active screen buffer */
|
PCONSOLE_SCREEN_BUFFER ActiveBuffer; /* Pointer to currently active screen buffer */
|
||||||
BYTE PauseFlags;
|
BYTE PauseFlags;
|
||||||
HANDLE UnpauseEvent;
|
HANDLE UnpauseEvent;
|
||||||
LIST_ENTRY WriteWaitQueue; /* List head for the queue of write wait blocks */
|
LIST_ENTRY WriteWaitQueue; /* List head for the queue of write wait blocks */
|
||||||
|
@ -89,7 +89,7 @@ typedef struct tagCSRSS_CONSOLE
|
||||||
UINT OutputCodePage;
|
UINT OutputCodePage;
|
||||||
|
|
||||||
CONSOLE_SELECTION_INFO Selection;
|
CONSOLE_SELECTION_INFO Selection;
|
||||||
} CSRSS_CONSOLE, *PCSRSS_CONSOLE;
|
} CONSOLE, *PCONSOLE;
|
||||||
|
|
||||||
/**************************************************************\
|
/**************************************************************\
|
||||||
\** Define the Console Leader Process for the console window **/
|
\** Define the Console Leader Process for the console window **/
|
||||||
|
@ -104,21 +104,21 @@ do { \
|
||||||
} while(0)
|
} while(0)
|
||||||
/**************************************************************/
|
/**************************************************************/
|
||||||
|
|
||||||
typedef struct tagCSRSS_CONSOLE_VTBL
|
typedef struct _CONSOLE_VTBL
|
||||||
{
|
{
|
||||||
VOID (WINAPI *InitScreenBuffer)(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer);
|
VOID (WINAPI *InitScreenBuffer)(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer);
|
||||||
VOID (WINAPI *WriteStream)(PCSRSS_CONSOLE Console, SMALL_RECT *Block, LONG CursorStartX, LONG CursorStartY,
|
VOID (WINAPI *WriteStream)(PCONSOLE Console, SMALL_RECT *Block, LONG CursorStartX, LONG CursorStartY,
|
||||||
UINT ScrolledLines, CHAR *Buffer, UINT Length);
|
UINT ScrolledLines, CHAR *Buffer, UINT Length);
|
||||||
VOID (WINAPI *DrawRegion)(PCSRSS_CONSOLE Console, SMALL_RECT *Region);
|
VOID (WINAPI *DrawRegion)(PCONSOLE Console, SMALL_RECT *Region);
|
||||||
BOOL (WINAPI *SetCursorInfo)(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer);
|
BOOL (WINAPI *SetCursorInfo)(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer);
|
||||||
BOOL (WINAPI *SetScreenInfo)(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer,
|
BOOL (WINAPI *SetScreenInfo)(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer,
|
||||||
UINT OldCursorX, UINT OldCursorY);
|
UINT OldCursorX, UINT OldCursorY);
|
||||||
BOOL (WINAPI *UpdateScreenInfo)(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer);
|
BOOL (WINAPI *UpdateScreenInfo)(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer);
|
||||||
BOOL (WINAPI *ChangeTitle)(PCSRSS_CONSOLE Console);
|
BOOL (WINAPI *ChangeTitle)(PCONSOLE Console);
|
||||||
VOID (WINAPI *CleanupConsole)(PCSRSS_CONSOLE Console);
|
VOID (WINAPI *CleanupConsole)(PCONSOLE Console);
|
||||||
BOOL (WINAPI *ChangeIcon)(PCSRSS_CONSOLE Console, HICON hWindowIcon);
|
BOOL (WINAPI *ChangeIcon)(PCONSOLE Console, HICON hWindowIcon);
|
||||||
NTSTATUS (WINAPI *ResizeBuffer)(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD Size);
|
NTSTATUS (WINAPI *ResizeBuffer)(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer, COORD Size);
|
||||||
} CSRSS_CONSOLE_VTBL, *PCSRSS_CONSOLE_VTBL;
|
} CONSOLE_VTBL, *PCONSOLE_VTBL;
|
||||||
|
|
||||||
typedef struct ConsoleInput_t
|
typedef struct ConsoleInput_t
|
||||||
{
|
{
|
||||||
|
@ -157,12 +157,12 @@ typedef struct ConsoleInput_t
|
||||||
|
|
||||||
/* console.c */
|
/* console.c */
|
||||||
NTSTATUS FASTCALL ConioConsoleFromProcessData(PCONSOLE_PROCESS_DATA ProcessData,
|
NTSTATUS FASTCALL ConioConsoleFromProcessData(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
PCSRSS_CONSOLE *Console);
|
PCONSOLE *Console);
|
||||||
VOID WINAPI ConioDeleteConsole(PCSRSS_CONSOLE Console);
|
VOID WINAPI ConioDeleteConsole(PCONSOLE Console);
|
||||||
VOID WINAPI CsrInitConsoleSupport(VOID);
|
VOID WINAPI CsrInitConsoleSupport(VOID);
|
||||||
NTSTATUS WINAPI CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLeaderProcess);
|
NTSTATUS WINAPI CsrInitConsole(PCONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLeaderProcess);
|
||||||
VOID FASTCALL ConioPause(PCSRSS_CONSOLE Console, UINT Flags);
|
VOID FASTCALL ConioPause(PCONSOLE Console, UINT Flags);
|
||||||
VOID FASTCALL ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags);
|
VOID FASTCALL ConioUnpause(PCONSOLE Console, UINT Flags);
|
||||||
VOID FASTCALL ConioConsoleCtrlEvent(DWORD Event, PCONSOLE_PROCESS_DATA ProcessData);
|
VOID FASTCALL ConioConsoleCtrlEvent(DWORD Event, PCONSOLE_PROCESS_DATA ProcessData);
|
||||||
VOID FASTCALL ConioConsoleCtrlEventTimeout(DWORD Event,
|
VOID FASTCALL ConioConsoleCtrlEventTimeout(DWORD Event,
|
||||||
PCONSOLE_PROCESS_DATA ProcessData,
|
PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
|
@ -173,7 +173,7 @@ VOID FASTCALL ConioConsoleCtrlEventTimeout(DWORD Event,
|
||||||
Win32CsrLockObject((ProcessData), (Handle), (Object_t **)(Ptr), Access, CONIO_CONSOLE_MAGIC)
|
Win32CsrLockObject((ProcessData), (Handle), (Object_t **)(Ptr), Access, CONIO_CONSOLE_MAGIC)
|
||||||
#define ConioUnlockConsole(Console) \
|
#define ConioUnlockConsole(Console) \
|
||||||
Win32CsrUnlockObject((Object_t *) Console)
|
Win32CsrUnlockObject((Object_t *) Console)
|
||||||
void WINAPI ConioProcessKey(MSG *msg, PCSRSS_CONSOLE Console, BOOL TextMode);
|
void WINAPI ConioProcessKey(MSG *msg, PCONSOLE Console, BOOL TextMode);
|
||||||
|
|
||||||
/* conoutput.c */
|
/* conoutput.c */
|
||||||
#define ConioRectHeight(Rect) \
|
#define ConioRectHeight(Rect) \
|
||||||
|
@ -184,20 +184,20 @@ void WINAPI ConioProcessKey(MSG *msg, PCSRSS_CONSOLE Console, BOOL TextMode);
|
||||||
Win32CsrLockObject((ProcessData), (Handle), (Object_t **)(Ptr), Access, CONIO_SCREEN_BUFFER_MAGIC)
|
Win32CsrLockObject((ProcessData), (Handle), (Object_t **)(Ptr), Access, CONIO_SCREEN_BUFFER_MAGIC)
|
||||||
#define ConioUnlockScreenBuffer(Buff) \
|
#define ConioUnlockScreenBuffer(Buff) \
|
||||||
Win32CsrUnlockObject((Object_t *) Buff)
|
Win32CsrUnlockObject((Object_t *) Buff)
|
||||||
PBYTE FASTCALL ConioCoordToPointer(PCSRSS_SCREEN_BUFFER Buf, ULONG X, ULONG Y);
|
PBYTE FASTCALL ConioCoordToPointer(PCONSOLE_SCREEN_BUFFER Buf, ULONG X, ULONG Y);
|
||||||
VOID FASTCALL ConioDrawConsole(PCSRSS_CONSOLE Console);
|
VOID FASTCALL ConioDrawConsole(PCONSOLE Console);
|
||||||
NTSTATUS FASTCALL ConioWriteConsole(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff,
|
NTSTATUS FASTCALL ConioWriteConsole(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff,
|
||||||
CHAR *Buffer, DWORD Length, BOOL Attrib);
|
CHAR *Buffer, DWORD Length, BOOL Attrib);
|
||||||
NTSTATUS FASTCALL CsrInitConsoleScreenBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buffer);
|
NTSTATUS FASTCALL CsrInitConsoleScreenBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buffer);
|
||||||
VOID WINAPI ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer);
|
VOID WINAPI ConioDeleteScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer);
|
||||||
DWORD FASTCALL ConioEffectiveCursorSize(PCSRSS_CONSOLE Console, DWORD Scale);
|
DWORD FASTCALL ConioEffectiveCursorSize(PCONSOLE Console, DWORD Scale);
|
||||||
|
|
||||||
/* alias.c */
|
/* alias.c */
|
||||||
VOID IntDeleteAllAliases(struct tagALIAS_HEADER *RootHeader);
|
VOID IntDeleteAllAliases(struct _ALIAS_HEADER *RootHeader);
|
||||||
|
|
||||||
/* lineinput.c */
|
/* lineinput.c */
|
||||||
struct tagHISTORY_BUFFER;
|
struct _HISTORY_BUFFER;
|
||||||
VOID FASTCALL HistoryDeleteBuffer(struct tagHISTORY_BUFFER *Hist);
|
VOID FASTCALL HistoryDeleteBuffer(struct _HISTORY_BUFFER *Hist);
|
||||||
VOID FASTCALL LineInputKeyDown(PCSRSS_CONSOLE Console, KEY_EVENT_RECORD *KeyEvent);
|
VOID FASTCALL LineInputKeyDown(PCONSOLE Console, KEY_EVENT_RECORD *KeyEvent);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -38,13 +38,13 @@ do { \
|
||||||
/* PRIVATE FUNCTIONS **********************************************************/
|
/* PRIVATE FUNCTIONS **********************************************************/
|
||||||
|
|
||||||
PBYTE FASTCALL
|
PBYTE FASTCALL
|
||||||
ConioCoordToPointer(PCSRSS_SCREEN_BUFFER Buff, ULONG X, ULONG Y)
|
ConioCoordToPointer(PCONSOLE_SCREEN_BUFFER Buff, ULONG X, ULONG Y)
|
||||||
{
|
{
|
||||||
return &Buff->Buffer[2 * (((Y + Buff->VirtualY) % Buff->MaxY) * Buff->MaxX + X)];
|
return &Buff->Buffer[2 * (((Y + Buff->VirtualY) % Buff->MaxY) * Buff->MaxX + X)];
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID FASTCALL
|
static VOID FASTCALL
|
||||||
ClearLineBuffer(PCSRSS_SCREEN_BUFFER Buff)
|
ClearLineBuffer(PCONSOLE_SCREEN_BUFFER Buff)
|
||||||
{
|
{
|
||||||
PBYTE Ptr = ConioCoordToPointer(Buff, 0, Buff->CurrentY);
|
PBYTE Ptr = ConioCoordToPointer(Buff, 0, Buff->CurrentY);
|
||||||
UINT Pos;
|
UINT Pos;
|
||||||
|
@ -58,8 +58,8 @@ ClearLineBuffer(PCSRSS_SCREEN_BUFFER Buff)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
CsrInitConsoleScreenBuffer(PCSRSS_CONSOLE Console,
|
CsrInitConsoleScreenBuffer(PCONSOLE Console,
|
||||||
PCSRSS_SCREEN_BUFFER Buffer)
|
PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
DPRINT("CsrInitConsoleScreenBuffer Size X %d Size Y %d\n", Buffer->MaxX, Buffer->MaxY);
|
DPRINT("CsrInitConsoleScreenBuffer Size X %d Size Y %d\n", Buffer->MaxX, Buffer->MaxY);
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ CsrInitConsoleScreenBuffer(PCSRSS_CONSOLE Console,
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID FASTCALL
|
static VOID FASTCALL
|
||||||
ConioNextLine(PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, UINT *ScrolledLines)
|
ConioNextLine(PCONSOLE_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, UINT *ScrolledLines)
|
||||||
{
|
{
|
||||||
/* If we hit bottom, slide the viewable screen */
|
/* If we hit bottom, slide the viewable screen */
|
||||||
if (++Buff->CurrentY == Buff->MaxY)
|
if (++Buff->CurrentY == Buff->MaxY)
|
||||||
|
@ -112,7 +112,7 @@ ConioNextLine(PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, UINT *ScrolledL
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
ConioWriteConsole(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff,
|
ConioWriteConsole(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff,
|
||||||
CHAR *Buffer, DWORD Length, BOOL Attrib)
|
CHAR *Buffer, DWORD Length, BOOL Attrib)
|
||||||
{
|
{
|
||||||
UINT i;
|
UINT i;
|
||||||
|
@ -303,7 +303,7 @@ __inline BOOLEAN ConioGetUnion(
|
||||||
* this is done, to avoid overwriting parts of the source before they are moved.
|
* this is done, to avoid overwriting parts of the source before they are moved.
|
||||||
*/
|
*/
|
||||||
static VOID FASTCALL
|
static VOID FASTCALL
|
||||||
ConioMoveRegion(PCSRSS_SCREEN_BUFFER ScreenBuffer,
|
ConioMoveRegion(PCONSOLE_SCREEN_BUFFER ScreenBuffer,
|
||||||
SMALL_RECT *SrcRegion,
|
SMALL_RECT *SrcRegion,
|
||||||
SMALL_RECT *DstRegion,
|
SMALL_RECT *DstRegion,
|
||||||
SMALL_RECT *ClipRegion,
|
SMALL_RECT *ClipRegion,
|
||||||
|
@ -363,9 +363,9 @@ ConioMoveRegion(PCSRSS_SCREEN_BUFFER ScreenBuffer,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID WINAPI
|
VOID WINAPI
|
||||||
ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer)
|
ConioDeleteScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console = Buffer->Header.Console;
|
PCONSOLE Console = Buffer->Header.Console;
|
||||||
|
|
||||||
RemoveEntryList(&Buffer->ListEntry);
|
RemoveEntryList(&Buffer->ListEntry);
|
||||||
if (Buffer == Console->ActiveBuffer)
|
if (Buffer == Console->ActiveBuffer)
|
||||||
|
@ -374,7 +374,7 @@ ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer)
|
||||||
Console->ActiveBuffer = NULL;
|
Console->ActiveBuffer = NULL;
|
||||||
if (!IsListEmpty(&Console->BufferList))
|
if (!IsListEmpty(&Console->BufferList))
|
||||||
{
|
{
|
||||||
Console->ActiveBuffer = CONTAINING_RECORD(Console->BufferList.Flink, CSRSS_SCREEN_BUFFER, ListEntry);
|
Console->ActiveBuffer = CONTAINING_RECORD(Console->BufferList.Flink, CONSOLE_SCREEN_BUFFER, ListEntry);
|
||||||
ConioDrawConsole(Console);
|
ConioDrawConsole(Console);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,7 +384,7 @@ ConioDeleteScreenBuffer(PCSRSS_SCREEN_BUFFER Buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL
|
VOID FASTCALL
|
||||||
ConioDrawConsole(PCSRSS_CONSOLE Console)
|
ConioDrawConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
SMALL_RECT Region;
|
SMALL_RECT Region;
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ ConioDrawConsole(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID FASTCALL
|
static VOID FASTCALL
|
||||||
ConioComputeUpdateRect(PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, COORD *Start, UINT Length)
|
ConioComputeUpdateRect(PCONSOLE_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, COORD *Start, UINT Length)
|
||||||
{
|
{
|
||||||
if (Buff->MaxX <= Start->X + Length)
|
if (Buff->MaxX <= Start->X + Length)
|
||||||
{
|
{
|
||||||
|
@ -421,7 +421,7 @@ ConioComputeUpdateRect(PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *UpdateRect, COORD
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD FASTCALL
|
DWORD FASTCALL
|
||||||
ConioEffectiveCursorSize(PCSRSS_CONSOLE Console, DWORD Scale)
|
ConioEffectiveCursorSize(PCONSOLE Console, DWORD Scale)
|
||||||
{
|
{
|
||||||
DWORD Size = (Console->ActiveBuffer->CursorInfo.dwSize * Scale + 99) / 100;
|
DWORD Size = (Console->ActiveBuffer->CursorInfo.dwSize * Scale + 99) / 100;
|
||||||
/* If line input in progress, perhaps adjust for insert toggle */
|
/* If line input in progress, perhaps adjust for insert toggle */
|
||||||
|
@ -466,8 +466,8 @@ DoWriteConsole(IN PCSR_API_MESSAGE ApiMessage,
|
||||||
{
|
{
|
||||||
NTSTATUS Status = STATUS_SUCCESS;
|
NTSTATUS Status = STATUS_SUCCESS;
|
||||||
PCONSOLE_WRITECONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
|
PCONSOLE_WRITECONSOLE WriteConsoleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteConsoleRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
PCHAR Buffer;
|
PCHAR Buffer;
|
||||||
DWORD Written = 0;
|
DWORD Written = 0;
|
||||||
ULONG Length;
|
ULONG Length;
|
||||||
|
@ -557,7 +557,7 @@ CSR_API(SrvReadConsoleOutput)
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCHAR_INFO CharInfo;
|
PCHAR_INFO CharInfo;
|
||||||
PCHAR_INFO CurCharInfo;
|
PCHAR_INFO CurCharInfo;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
DWORD SizeX, SizeY;
|
DWORD SizeX, SizeY;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
COORD BufferSize;
|
COORD BufferSize;
|
||||||
|
@ -665,8 +665,8 @@ CSR_API(SrvWriteConsoleOutput)
|
||||||
PCONSOLE_WRITEOUTPUT WriteOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputRequest;
|
PCONSOLE_WRITEOUTPUT WriteOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
SHORT i, X, Y, SizeX, SizeY;
|
SHORT i, X, Y, SizeX, SizeY;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
SMALL_RECT ScreenBuffer;
|
SMALL_RECT ScreenBuffer;
|
||||||
CHAR_INFO* CurCharInfo;
|
CHAR_INFO* CurCharInfo;
|
||||||
SMALL_RECT WriteRegion;
|
SMALL_RECT WriteRegion;
|
||||||
|
@ -753,8 +753,8 @@ CSR_API(SrvReadConsoleOutputString)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadOutputCodeRequest;
|
PCONSOLE_READOUTPUTCODE ReadOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ReadOutputCodeRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
USHORT CodeType;
|
USHORT CodeType;
|
||||||
DWORD Xpos, Ypos;
|
DWORD Xpos, Ypos;
|
||||||
PVOID ReadBuffer;
|
PVOID ReadBuffer;
|
||||||
|
@ -877,8 +877,8 @@ CSR_API(SrvWriteConsoleOutputString)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputCodeRequest;
|
PCONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.WriteOutputCodeRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
USHORT CodeType;
|
USHORT CodeType;
|
||||||
PBYTE Buffer; // PUCHAR
|
PBYTE Buffer; // PUCHAR
|
||||||
PCHAR String, tmpString = NULL;
|
PCHAR String, tmpString = NULL;
|
||||||
|
@ -1009,8 +1009,8 @@ CSR_API(SrvFillConsoleOutput)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FillOutputRequest;
|
PCONSOLE_FILLOUTPUTCODE FillOutputRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.FillOutputRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
DWORD X, Y, Length; // , Written = 0;
|
DWORD X, Y, Length; // , Written = 0;
|
||||||
USHORT CodeType;
|
USHORT CodeType;
|
||||||
BYTE Code;
|
BYTE Code;
|
||||||
|
@ -1085,7 +1085,7 @@ CSR_API(SrvGetConsoleCursorInfo)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
|
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleCursorInfo\n");
|
DPRINT("SrvGetConsoleCursorInfo\n");
|
||||||
|
|
||||||
|
@ -1103,8 +1103,8 @@ CSR_API(SrvSetConsoleCursorInfo)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
|
PCONSOLE_GETSETCURSORINFO CursorInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CursorInfoRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
DWORD Size;
|
DWORD Size;
|
||||||
BOOL Visible;
|
BOOL Visible;
|
||||||
|
|
||||||
|
@ -1149,8 +1149,8 @@ CSR_API(SrvSetConsoleCursorPosition)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_SETCURSORPOSITION SetCursorPositionRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetCursorPositionRequest;
|
PCONSOLE_SETCURSORPOSITION SetCursorPositionRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetCursorPositionRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
LONG OldCursorX, OldCursorY;
|
LONG OldCursorX, OldCursorY;
|
||||||
LONG NewCursorX, NewCursorY;
|
LONG NewCursorX, NewCursorY;
|
||||||
|
|
||||||
|
@ -1191,8 +1191,8 @@ CSR_API(SrvSetConsoleTextAttribute)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_SETTEXTATTRIB SetTextAttribRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetTextAttribRequest;
|
PCONSOLE_SETTEXTATTRIB SetTextAttribRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetTextAttribRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleTextAttribute\n");
|
DPRINT("SrvSetConsoleTextAttribute\n");
|
||||||
|
|
||||||
|
@ -1221,8 +1221,8 @@ CSR_API(SrvCreateConsoleScreenBuffer)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CreateScreenBufferRequest;
|
PCONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.CreateScreenBufferRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvCreateConsoleScreenBuffer\n");
|
DPRINT("SrvCreateConsoleScreenBuffer\n");
|
||||||
|
|
||||||
|
@ -1235,7 +1235,7 @@ CSR_API(SrvCreateConsoleScreenBuffer)
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
Buff = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
|
Buff = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CONSOLE_SCREEN_BUFFER));
|
||||||
if (Buff != NULL)
|
if (Buff != NULL)
|
||||||
{
|
{
|
||||||
if (Console->ActiveBuffer)
|
if (Console->ActiveBuffer)
|
||||||
|
@ -1288,8 +1288,8 @@ CSR_API(SrvGetConsoleScreenBufferInfo)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScreenBufferInfoRequest;
|
PCONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScreenBufferInfoRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
PCONSOLE_SCREEN_BUFFER_INFO pInfo = &ScreenBufferInfoRequest->Info;
|
PCONSOLE_SCREEN_BUFFER_INFO pInfo = &ScreenBufferInfoRequest->Info;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleScreenBufferInfo\n");
|
DPRINT("SrvGetConsoleScreenBufferInfo\n");
|
||||||
|
@ -1320,8 +1320,8 @@ CSR_API(SrvSetConsoleActiveScreenBuffer)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferRequest;
|
PCONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleActiveScreenBuffer\n");
|
DPRINT("SrvSetConsoleActiveScreenBuffer\n");
|
||||||
|
|
||||||
|
@ -1356,8 +1356,8 @@ CSR_API(SrvSetConsoleActiveScreenBuffer)
|
||||||
CSR_API(SrvScrollConsoleScreenBuffer)
|
CSR_API(SrvScrollConsoleScreenBuffer)
|
||||||
{
|
{
|
||||||
PCONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScrollScreenBufferRequest;
|
PCONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ScrollScreenBufferRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
SMALL_RECT ScreenBuffer;
|
SMALL_RECT ScreenBuffer;
|
||||||
SMALL_RECT SrcRegion;
|
SMALL_RECT SrcRegion;
|
||||||
SMALL_RECT DstRegion;
|
SMALL_RECT DstRegion;
|
||||||
|
@ -1449,7 +1449,7 @@ CSR_API(SrvSetConsoleScreenBufferSize)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferSizeRequest;
|
PCONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetScreenBufferSizeRequest;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetScreenBufferSizeRequest->OutputHandle, &Buff, GENERIC_WRITE);
|
Status = ConioLockScreenBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), SetScreenBufferSizeRequest->OutputHandle, &Buff, GENERIC_WRITE);
|
||||||
if (!NT_SUCCESS(Status)) return Status;
|
if (!NT_SUCCESS(Status)) return Status;
|
||||||
|
|
|
@ -33,9 +33,9 @@ DtbgIsDesktopVisible(VOID)
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
ConioConsoleFromProcessData(PCONSOLE_PROCESS_DATA ProcessData,
|
ConioConsoleFromProcessData(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
PCSRSS_CONSOLE *Console)
|
PCONSOLE *Console)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE ProcessConsole;
|
PCONSOLE ProcessConsole;
|
||||||
|
|
||||||
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
|
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
|
||||||
ProcessConsole = ProcessData->Console;
|
ProcessConsole = ProcessData->Console;
|
||||||
|
@ -88,12 +88,12 @@ ConioConsoleCtrlEvent(DWORD Event, PCONSOLE_PROCESS_DATA ProcessData)
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS WINAPI
|
NTSTATUS WINAPI
|
||||||
CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLeaderProcess)
|
CsrInitConsole(PCONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLeaderProcess)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
SECURITY_ATTRIBUTES SecurityAttributes;
|
SECURITY_ATTRIBUTES SecurityAttributes;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER NewBuffer;
|
PCONSOLE_SCREEN_BUFFER NewBuffer;
|
||||||
BOOL GuiMode;
|
BOOL GuiMode;
|
||||||
WCHAR Title[255];
|
WCHAR Title[255];
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLead
|
||||||
*NewConsole = NULL;
|
*NewConsole = NULL;
|
||||||
|
|
||||||
/* Allocate a console structure */
|
/* Allocate a console structure */
|
||||||
Console = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_CONSOLE));
|
Console = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CONSOLE));
|
||||||
if (NULL == Console)
|
if (NULL == Console)
|
||||||
{
|
{
|
||||||
DPRINT1("Not enough memory for console creation.\n");
|
DPRINT1("Not enough memory for console creation.\n");
|
||||||
|
@ -155,7 +155,7 @@ CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLead
|
||||||
GuiMode = DtbgIsDesktopVisible();
|
GuiMode = DtbgIsDesktopVisible();
|
||||||
|
|
||||||
/* allocate console screen buffer */
|
/* allocate console screen buffer */
|
||||||
NewBuffer = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CSRSS_SCREEN_BUFFER));
|
NewBuffer = HeapAlloc(ConSrvHeap, HEAP_ZERO_MEMORY, sizeof(CONSOLE_SCREEN_BUFFER));
|
||||||
if (NULL == NewBuffer)
|
if (NULL == NewBuffer)
|
||||||
{
|
{
|
||||||
RtlFreeUnicodeString(&Console->Title);
|
RtlFreeUnicodeString(&Console->Title);
|
||||||
|
@ -168,7 +168,7 @@ CsrInitConsole(PCSRSS_CONSOLE* NewConsole, int ShowCmd, PCSR_PROCESS ConsoleLead
|
||||||
NewBuffer->CursorInfo.bVisible = TRUE;
|
NewBuffer->CursorInfo.bVisible = TRUE;
|
||||||
NewBuffer->CursorInfo.dwSize = CSR_DEFAULT_CURSOR_SIZE;
|
NewBuffer->CursorInfo.dwSize = CSR_DEFAULT_CURSOR_SIZE;
|
||||||
/* make console active, and insert into console list */
|
/* make console active, and insert into console list */
|
||||||
Console->ActiveBuffer = (PCSRSS_SCREEN_BUFFER) NewBuffer;
|
Console->ActiveBuffer = (PCONSOLE_SCREEN_BUFFER) NewBuffer;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we are not in GUI-mode, start the text-mode console. If we fail,
|
* If we are not in GUI-mode, start the text-mode console. If we fail,
|
||||||
|
@ -251,7 +251,7 @@ CSR_API(SrvOpenConsole)
|
||||||
DWORD DesiredAccess = OpenConsoleRequest->Access;
|
DWORD DesiredAccess = OpenConsoleRequest->Access;
|
||||||
DWORD ShareMode = OpenConsoleRequest->ShareMode;
|
DWORD ShareMode = OpenConsoleRequest->ShareMode;
|
||||||
|
|
||||||
PCSRSS_CONSOLE Console = ProcessData->Console;
|
PCONSOLE Console = ProcessData->Console;
|
||||||
Object_t *Object;
|
Object_t *Object;
|
||||||
|
|
||||||
DPRINT1("SrvOpenConsole - Checkpoint 2\n");
|
DPRINT1("SrvOpenConsole - Checkpoint 2\n");
|
||||||
|
@ -435,7 +435,7 @@ CSR_API(SrvAllocConsole)
|
||||||
|
|
||||||
/* Set the Ctrl Dispatcher */
|
/* Set the Ctrl Dispatcher */
|
||||||
ProcessData->CtrlDispatcher = AllocConsoleRequest->CtrlDispatcher;
|
ProcessData->CtrlDispatcher = AllocConsoleRequest->CtrlDispatcher;
|
||||||
DPRINT("CSRSS:CtrlDispatcher address: %x\n", ProcessData->CtrlDispatcher);
|
DPRINT("CONSRV: CtrlDispatcher address: %x\n", ProcessData->CtrlDispatcher);
|
||||||
|
|
||||||
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
|
@ -449,7 +449,7 @@ CSR_API(SrvFreeConsole)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID WINAPI
|
VOID WINAPI
|
||||||
ConioDeleteConsole(PCSRSS_CONSOLE Console)
|
ConioDeleteConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
ConsoleInput *Event;
|
ConsoleInput *Event;
|
||||||
|
|
||||||
|
@ -468,7 +468,7 @@ ConioDeleteConsole(PCSRSS_CONSOLE Console)
|
||||||
if (Console->LineBuffer)
|
if (Console->LineBuffer)
|
||||||
RtlFreeHeap(ConSrvHeap, 0, Console->LineBuffer);
|
RtlFreeHeap(ConSrvHeap, 0, Console->LineBuffer);
|
||||||
while (!IsListEmpty(&Console->HistoryBuffers))
|
while (!IsListEmpty(&Console->HistoryBuffers))
|
||||||
HistoryDeleteBuffer((struct tagHISTORY_BUFFER *)Console->HistoryBuffers.Flink);
|
HistoryDeleteBuffer((struct _HISTORY_BUFFER *)Console->HistoryBuffers.Flink);
|
||||||
|
|
||||||
ConioDeleteScreenBuffer(Console->ActiveBuffer);
|
ConioDeleteScreenBuffer(Console->ActiveBuffer);
|
||||||
if (!IsListEmpty(&Console->BufferList))
|
if (!IsListEmpty(&Console->BufferList))
|
||||||
|
@ -493,7 +493,7 @@ CsrInitConsoleSupport(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL
|
VOID FASTCALL
|
||||||
ConioPause(PCSRSS_CONSOLE Console, UINT Flags)
|
ConioPause(PCONSOLE Console, UINT Flags)
|
||||||
{
|
{
|
||||||
Console->PauseFlags |= Flags;
|
Console->PauseFlags |= Flags;
|
||||||
if (!Console->UnpauseEvent)
|
if (!Console->UnpauseEvent)
|
||||||
|
@ -501,7 +501,7 @@ ConioPause(PCSRSS_CONSOLE Console, UINT Flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL
|
VOID FASTCALL
|
||||||
ConioUnpause(PCSRSS_CONSOLE Console, UINT Flags)
|
ConioUnpause(PCONSOLE Console, UINT Flags)
|
||||||
{
|
{
|
||||||
Console->PauseFlags &= ~Flags;
|
Console->PauseFlags &= ~Flags;
|
||||||
|
|
||||||
|
@ -523,8 +523,8 @@ CSR_API(SrvSetConsoleMode)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
|
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleMode\n");
|
DPRINT("SrvSetConsoleMode\n");
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@ CSR_API(SrvSetConsoleMode)
|
||||||
(Object_t **) &Console, GENERIC_WRITE, 0);
|
(Object_t **) &Console, GENERIC_WRITE, 0);
|
||||||
if (!NT_SUCCESS(Status)) return Status;
|
if (!NT_SUCCESS(Status)) return Status;
|
||||||
|
|
||||||
Buff = (PCSRSS_SCREEN_BUFFER)Console;
|
Buff = (PCONSOLE_SCREEN_BUFFER)Console;
|
||||||
|
|
||||||
if (CONIO_CONSOLE_MAGIC == Console->Header.Type)
|
if (CONIO_CONSOLE_MAGIC == Console->Header.Type)
|
||||||
{
|
{
|
||||||
|
@ -557,8 +557,8 @@ CSR_API(SrvGetConsoleMode)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
|
PCONSOLE_GETSETCONSOLEMODE ConsoleModeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleModeRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleMode\n");
|
DPRINT("SrvGetConsoleMode\n");
|
||||||
|
|
||||||
|
@ -568,7 +568,7 @@ CSR_API(SrvGetConsoleMode)
|
||||||
if (!NT_SUCCESS(Status)) return Status;
|
if (!NT_SUCCESS(Status)) return Status;
|
||||||
|
|
||||||
Status = STATUS_SUCCESS;
|
Status = STATUS_SUCCESS;
|
||||||
Buff = (PCSRSS_SCREEN_BUFFER) Console;
|
Buff = (PCONSOLE_SCREEN_BUFFER) Console;
|
||||||
|
|
||||||
if (CONIO_CONSOLE_MAGIC == Console->Header.Type)
|
if (CONIO_CONSOLE_MAGIC == Console->Header.Type)
|
||||||
{
|
{
|
||||||
|
@ -592,7 +592,7 @@ CSR_API(SrvSetConsoleTitle)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
|
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
|
||||||
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PWCHAR Buffer;
|
PWCHAR Buffer;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleTitle\n");
|
DPRINT("SrvSetConsoleTitle\n");
|
||||||
|
@ -642,7 +642,7 @@ CSR_API(SrvGetConsoleTitle)
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
|
PCONSOLE_GETSETCONSOLETITLE TitleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.TitleRequest;
|
||||||
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
DWORD Length;
|
DWORD Length;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleTitle\n");
|
DPRINT("SrvGetConsoleTitle\n");
|
||||||
|
@ -684,14 +684,14 @@ CSR_API(SrvGetConsoleTitle)
|
||||||
* between direct video buffer ouput and GDI windowed
|
* between direct video buffer ouput and GDI windowed
|
||||||
* output.
|
* output.
|
||||||
* ARGUMENTS
|
* ARGUMENTS
|
||||||
* Client hands us a CSRSS_CONSOLE_HARDWARE_STATE
|
* Client hands us a CONSOLE_GETSETHWSTATE object.
|
||||||
* object. We use the same object to Request.
|
* We use the same object to Request.
|
||||||
* NOTE
|
* NOTE
|
||||||
* ConsoleHwState has the correct size to be compatible
|
* ConsoleHwState has the correct size to be compatible
|
||||||
* with NT's, but values are not.
|
* with NT's, but values are not.
|
||||||
*/
|
*/
|
||||||
static NTSTATUS FASTCALL
|
static NTSTATUS FASTCALL
|
||||||
SetConsoleHardwareState(PCSRSS_CONSOLE Console, DWORD ConsoleHwState)
|
SetConsoleHardwareState(PCONSOLE Console, DWORD ConsoleHwState)
|
||||||
{
|
{
|
||||||
DPRINT1("Console Hardware State: %d\n", ConsoleHwState);
|
DPRINT1("Console Hardware State: %d\n", ConsoleHwState);
|
||||||
|
|
||||||
|
@ -715,7 +715,7 @@ CSR_API(SrvGetConsoleHardwareState)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
|
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleHardwareState\n");
|
DPRINT("SrvGetConsoleHardwareState\n");
|
||||||
|
|
||||||
|
@ -740,7 +740,7 @@ CSR_API(SrvSetConsoleHardwareState)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
|
PCONSOLE_GETSETHWSTATE HardwareStateRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HardwareStateRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleHardwareState\n");
|
DPRINT("SrvSetConsoleHardwareState\n");
|
||||||
|
|
||||||
|
@ -766,7 +766,7 @@ CSR_API(SrvGetConsoleWindow)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETWINDOW GetWindowRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetWindowRequest;
|
PCONSOLE_GETWINDOW GetWindowRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetWindowRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleWindow\n");
|
DPRINT("SrvGetConsoleWindow\n");
|
||||||
|
|
||||||
|
@ -783,7 +783,7 @@ CSR_API(SrvSetConsoleIcon)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_SETICON SetIconRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetIconRequest;
|
PCONSOLE_SETICON SetIconRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetIconRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleIcon\n");
|
DPRINT("SrvSetConsoleIcon\n");
|
||||||
|
|
||||||
|
@ -803,7 +803,7 @@ CSR_API(SrvGetConsoleCP)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
|
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvGetConsoleCP, getting %s Code Page\n",
|
DPRINT("SrvGetConsoleCP, getting %s Code Page\n",
|
||||||
ConsoleCPRequest->InputCP ? "Input" : "Output");
|
ConsoleCPRequest->InputCP ? "Input" : "Output");
|
||||||
|
@ -821,7 +821,7 @@ CSR_API(SrvSetConsoleCP)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
|
PCONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ConsoleCPRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
DPRINT("SrvSetConsoleCP, setting %s Code Page\n",
|
DPRINT("SrvSetConsoleCP, setting %s Code Page\n",
|
||||||
ConsoleCPRequest->InputCP ? "Input" : "Output");
|
ConsoleCPRequest->InputCP ? "Input" : "Output");
|
||||||
|
@ -850,7 +850,7 @@ CSR_API(SrvGetConsoleProcessList)
|
||||||
PCONSOLE_GETPROCESSLIST GetProcessListRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetProcessListRequest;
|
PCONSOLE_GETPROCESSLIST GetProcessListRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetProcessListRequest;
|
||||||
PDWORD Buffer;
|
PDWORD Buffer;
|
||||||
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
// PCSR_PROCESS Process = CsrGetClientThread()->Process;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCONSOLE_PROCESS_DATA current;
|
PCONSOLE_PROCESS_DATA current;
|
||||||
PLIST_ENTRY current_entry;
|
PLIST_ENTRY current_entry;
|
||||||
ULONG nItems = 0;
|
ULONG nItems = 0;
|
||||||
|
@ -891,7 +891,7 @@ CSR_API(SrvGenerateConsoleCtrlEvent)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GenerateCtrlEventRequest;
|
PCONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GenerateCtrlEventRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCONSOLE_PROCESS_DATA current;
|
PCONSOLE_PROCESS_DATA current;
|
||||||
PLIST_ENTRY current_entry;
|
PLIST_ENTRY current_entry;
|
||||||
DWORD Group;
|
DWORD Group;
|
||||||
|
@ -922,7 +922,7 @@ CSR_API(SrvGetConsoleSelectionInfo)
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PCONSOLE_GETSELECTIONINFO GetSelectionInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetSelectionInfoRequest;
|
PCONSOLE_GETSELECTIONINFO GetSelectionInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetSelectionInfoRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
|
|
||||||
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
|
|
|
@ -46,20 +46,20 @@ extern HANDLE ConSrvHeap;
|
||||||
typedef struct Object_tt
|
typedef struct Object_tt
|
||||||
{
|
{
|
||||||
LONG Type;
|
LONG Type;
|
||||||
struct tagCSRSS_CONSOLE *Console;
|
struct _CONSOLE *Console;
|
||||||
LONG AccessRead, AccessWrite;
|
LONG AccessRead, AccessWrite;
|
||||||
LONG ExclusiveRead, ExclusiveWrite;
|
LONG ExclusiveRead, ExclusiveWrite;
|
||||||
LONG HandleCount;
|
LONG HandleCount;
|
||||||
} Object_t;
|
} Object_t;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _CSRSS_HANDLE
|
typedef struct _CONSOLE_IO_HANDLE
|
||||||
{
|
{
|
||||||
Object_t *Object; /* The object on which the handle points to */
|
Object_t *Object; /* The object on which the handle points to */
|
||||||
DWORD Access;
|
DWORD Access;
|
||||||
BOOL Inheritable;
|
BOOL Inheritable;
|
||||||
DWORD ShareMode;
|
DWORD ShareMode;
|
||||||
} CSRSS_HANDLE, *PCSRSS_HANDLE;
|
} CONSOLE_IO_HANDLE, *PCONSOLE_IO_HANDLE;
|
||||||
|
|
||||||
|
|
||||||
#define ConsoleGetPerProcessData(pcsrprocess) \
|
#define ConsoleGetPerProcessData(pcsrprocess) \
|
||||||
|
@ -70,15 +70,15 @@ typedef struct _CONSOLE_PROCESS_DATA
|
||||||
LIST_ENTRY ConsoleLink;
|
LIST_ENTRY ConsoleLink;
|
||||||
PCSR_PROCESS Process; // Process owning this structure.
|
PCSR_PROCESS Process; // Process owning this structure.
|
||||||
HANDLE ConsoleEvent;
|
HANDLE ConsoleEvent;
|
||||||
/* PCSRSS_CONSOLE */ struct tagCSRSS_CONSOLE* Console;
|
/* PCONSOLE */ struct _CONSOLE* Console;
|
||||||
/* PCSRSS_CONSOLE */ struct tagCSRSS_CONSOLE* ParentConsole;
|
/* PCONSOLE */ struct _CONSOLE* ParentConsole;
|
||||||
|
|
||||||
// BOOL bInheritHandles;
|
// BOOL bInheritHandles;
|
||||||
BOOL ConsoleApp; // TRUE if it is a CUI app, FALSE otherwise.
|
BOOL ConsoleApp; // TRUE if it is a CUI app, FALSE otherwise.
|
||||||
|
|
||||||
RTL_CRITICAL_SECTION HandleTableLock;
|
RTL_CRITICAL_SECTION HandleTableLock;
|
||||||
ULONG HandleTableSize;
|
ULONG HandleTableSize;
|
||||||
PCSRSS_HANDLE HandleTable; // Length-varying table
|
PCONSOLE_IO_HANDLE HandleTable; // Length-varying table
|
||||||
LPTHREAD_START_ROUTINE CtrlDispatcher;
|
LPTHREAD_START_ROUTINE CtrlDispatcher;
|
||||||
} CONSOLE_PROCESS_DATA, *PCONSOLE_PROCESS_DATA;
|
} CONSOLE_PROCESS_DATA, *PCONSOLE_PROCESS_DATA;
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,7 @@ GuiConsoleAppendMenuItems(HMENU hMenu,
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleCreateSysMenu(PCSRSS_CONSOLE Console)
|
GuiConsoleCreateSysMenu(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
HMENU hMenu;
|
HMENU hMenu;
|
||||||
hMenu = GetSystemMenu(Console->hWindow,
|
hMenu = GetSystemMenu(Console->hWindow,
|
||||||
|
@ -194,9 +194,9 @@ GuiConsoleCreateSysMenu(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleGetDataPointers(HWND hWnd, PCSRSS_CONSOLE *Console, PGUI_CONSOLE_DATA *GuiData)
|
GuiConsoleGetDataPointers(HWND hWnd, PCONSOLE *Console, PGUI_CONSOLE_DATA *GuiData)
|
||||||
{
|
{
|
||||||
*Console = (PCSRSS_CONSOLE)GetWindowLongPtrW(hWnd, GWLP_USERDATA);
|
*Console = (PCONSOLE)GetWindowLongPtrW(hWnd, GWLP_USERDATA);
|
||||||
*GuiData = (NULL == *Console ? NULL : (*Console)->PrivateData);
|
*GuiData = (NULL == *Console ? NULL : (*Console)->PrivateData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +404,7 @@ GuiConsoleOpenUserSettings(PGUI_CONSOLE_DATA GuiData, DWORD ProcessId, PHKEY hSu
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleWriteUserSettings(PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData)
|
GuiConsoleWriteUserSettings(PCONSOLE Console, PGUI_CONSOLE_DATA GuiData)
|
||||||
{
|
{
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData;
|
PCONSOLE_PROCESS_DATA ProcessData;
|
||||||
|
@ -510,7 +510,7 @@ GuiConsoleWriteUserSettings(PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
GuiConsoleReadUserSettings(HKEY hKey, PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData, PCSRSS_SCREEN_BUFFER Buffer)
|
GuiConsoleReadUserSettings(HKEY hKey, PCONSOLE Console, PGUI_CONSOLE_DATA GuiData, PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
DWORD dwNumSubKeys = 0;
|
DWORD dwNumSubKeys = 0;
|
||||||
DWORD dwIndex;
|
DWORD dwIndex;
|
||||||
|
@ -612,7 +612,7 @@ GuiConsoleReadUserSettings(HKEY hKey, PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleUseDefaults(PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData, PCSRSS_SCREEN_BUFFER Buffer)
|
GuiConsoleUseDefaults(PCONSOLE Console, PGUI_CONSOLE_DATA GuiData, PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* init guidata with default properties
|
* init guidata with default properties
|
||||||
|
@ -649,7 +649,7 @@ GuiConsoleUseDefaults(PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData, PCSRSS_
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
FASTCALL
|
FASTCALL
|
||||||
GuiConsoleInitScrollbar(PCSRSS_CONSOLE Console, HWND hwnd)
|
GuiConsoleInitScrollbar(PCONSOLE Console, HWND hwnd)
|
||||||
{
|
{
|
||||||
SCROLLINFO sInfo;
|
SCROLLINFO sInfo;
|
||||||
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
||||||
|
@ -697,7 +697,7 @@ GuiConsoleInitScrollbar(PCSRSS_CONSOLE Console, HWND hwnd)
|
||||||
static BOOL
|
static BOOL
|
||||||
GuiConsoleHandleNcCreate(HWND hWnd, LPCREATESTRUCTW Create)
|
GuiConsoleHandleNcCreate(HWND hWnd, LPCREATESTRUCTW Create)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console = (PCSRSS_CONSOLE)Create->lpCreateParams;
|
PCONSOLE Console = (PCONSOLE)Create->lpCreateParams;
|
||||||
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA)Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA)Console->PrivateData;
|
||||||
HDC Dc;
|
HDC Dc;
|
||||||
HFONT OldFont;
|
HFONT OldFont;
|
||||||
|
@ -805,9 +805,9 @@ GuiConsoleHandleNcCreate(HWND hWnd, LPCREATESTRUCTW Create)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
SmallRectToRect(PCSRSS_CONSOLE Console, PRECT Rect, PSMALL_RECT SmallRect)
|
SmallRectToRect(PCONSOLE Console, PRECT Rect, PSMALL_RECT SmallRect)
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
||||||
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
||||||
Rect->left = (SmallRect->Left - Buffer->ShowX) * GuiData->CharWidth;
|
Rect->left = (SmallRect->Left - Buffer->ShowX) * GuiData->CharWidth;
|
||||||
Rect->top = (SmallRect->Top - Buffer->ShowY) * GuiData->CharHeight;
|
Rect->top = (SmallRect->Top - Buffer->ShowY) * GuiData->CharHeight;
|
||||||
|
@ -816,7 +816,7 @@ SmallRectToRect(PCSRSS_CONSOLE Console, PRECT Rect, PSMALL_RECT SmallRect)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleUpdateSelection(PCSRSS_CONSOLE Console, PCOORD coord)
|
GuiConsoleUpdateSelection(PCONSOLE Console, PCOORD coord)
|
||||||
{
|
{
|
||||||
RECT oldRect, newRect;
|
RECT oldRect, newRect;
|
||||||
HWND hWnd = Console->hWindow;
|
HWND hWnd = Console->hWindow;
|
||||||
|
@ -878,12 +878,12 @@ GuiConsoleUpdateSelection(PCSRSS_CONSOLE Console, PCOORD coord)
|
||||||
|
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsolePaint(PCSRSS_CONSOLE Console,
|
GuiConsolePaint(PCONSOLE Console,
|
||||||
PGUI_CONSOLE_DATA GuiData,
|
PGUI_CONSOLE_DATA GuiData,
|
||||||
HDC hDC,
|
HDC hDC,
|
||||||
PRECT rc)
|
PRECT rc)
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
ULONG TopLine, BottomLine, LeftChar, RightChar;
|
ULONG TopLine, BottomLine, LeftChar, RightChar;
|
||||||
ULONG Line, Char, Start;
|
ULONG Line, Char, Start;
|
||||||
PBYTE From;
|
PBYTE From;
|
||||||
|
@ -1001,7 +1001,7 @@ GuiConsoleHandlePaint(HWND hWnd, HDC hDCPaint)
|
||||||
{
|
{
|
||||||
HDC hDC;
|
HDC hDC;
|
||||||
PAINTSTRUCT ps;
|
PAINTSTRUCT ps;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
|
|
||||||
hDC = BeginPaint(hWnd, &ps);
|
hDC = BeginPaint(hWnd, &ps);
|
||||||
|
@ -1054,7 +1054,7 @@ GuiConsoleHandlePaint(HWND hWnd, HDC hDCPaint)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleHandleKey(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
GuiConsoleHandleKey(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
MSG Message;
|
MSG Message;
|
||||||
|
|
||||||
|
@ -1074,7 +1074,7 @@ GuiConsoleHandleKey(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
GuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
|
GuiDrawRegion(PCONSOLE Console, SMALL_RECT *Region)
|
||||||
{
|
{
|
||||||
RECT RegionRect;
|
RECT RegionRect;
|
||||||
SmallRectToRect(Console, &RegionRect, Region);
|
SmallRectToRect(Console, &RegionRect, Region);
|
||||||
|
@ -1082,18 +1082,18 @@ GuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiInvalidateCell(PCSRSS_CONSOLE Console, UINT x, UINT y)
|
GuiInvalidateCell(PCONSOLE Console, UINT x, UINT y)
|
||||||
{
|
{
|
||||||
SMALL_RECT CellRect = { x, y, x, y };
|
SMALL_RECT CellRect = { x, y, x, y };
|
||||||
GuiDrawRegion(Console, &CellRect);
|
GuiDrawRegion(Console, &CellRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
GuiWriteStream(PCSRSS_CONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LONG CursorStartY,
|
GuiWriteStream(PCONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LONG CursorStartY,
|
||||||
UINT ScrolledLines, CHAR *Buffer, UINT Length)
|
UINT ScrolledLines, CHAR *Buffer, UINT Length)
|
||||||
{
|
{
|
||||||
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA) Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA) Console->PrivateData;
|
||||||
PCSRSS_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
||||||
LONG CursorEndX, CursorEndY;
|
LONG CursorEndX, CursorEndY;
|
||||||
RECT ScrollRect;
|
RECT ScrollRect;
|
||||||
|
|
||||||
|
@ -1143,7 +1143,7 @@ GuiWriteStream(PCSRSS_CONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LO
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
GuiSetCursorInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
GuiSetCursorInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff)
|
||||||
{
|
{
|
||||||
if (Console->ActiveBuffer == Buff)
|
if (Console->ActiveBuffer == Buff)
|
||||||
{
|
{
|
||||||
|
@ -1154,7 +1154,7 @@ GuiSetCursorInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
GuiSetScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff, UINT OldCursorX, UINT OldCursorY)
|
GuiSetScreenInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff, UINT OldCursorX, UINT OldCursorY)
|
||||||
{
|
{
|
||||||
if (Console->ActiveBuffer == Buff)
|
if (Console->ActiveBuffer == Buff)
|
||||||
{
|
{
|
||||||
|
@ -1168,7 +1168,7 @@ GuiSetScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff, UINT OldCurs
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
GuiUpdateScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
GuiUpdateScreenInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff)
|
||||||
{
|
{
|
||||||
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA) Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = (PGUI_CONSOLE_DATA) Console->PrivateData;
|
||||||
|
|
||||||
|
@ -1184,9 +1184,9 @@ GuiUpdateScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleHandleTimer(HWND hWnd)
|
GuiConsoleHandleTimer(HWND hWnd)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
SetTimer(hWnd, CONGUI_UPDATE_TIMER, CURSOR_BLINK_TIME, NULL);
|
SetTimer(hWnd, CONGUI_UPDATE_TIMER, CURSOR_BLINK_TIME, NULL);
|
||||||
|
|
||||||
|
@ -1273,7 +1273,7 @@ GuiConsoleHandleTimer(HWND hWnd)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleHandleClose(HWND hWnd)
|
GuiConsoleHandleClose(HWND hWnd)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
PLIST_ENTRY current_entry;
|
PLIST_ENTRY current_entry;
|
||||||
PCONSOLE_PROCESS_DATA current;
|
PCONSOLE_PROCESS_DATA current;
|
||||||
|
@ -1300,7 +1300,7 @@ GuiConsoleHandleClose(HWND hWnd)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleHandleNcDestroy(HWND hWnd)
|
GuiConsoleHandleNcDestroy(HWND hWnd)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1316,9 +1316,9 @@ GuiConsoleHandleNcDestroy(HWND hWnd)
|
||||||
}
|
}
|
||||||
|
|
||||||
static COORD
|
static COORD
|
||||||
PointToCoord(PCSRSS_CONSOLE Console, LPARAM lParam)
|
PointToCoord(PCONSOLE Console, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
||||||
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
PGUI_CONSOLE_DATA GuiData = Console->PrivateData;
|
||||||
COORD Coord;
|
COORD Coord;
|
||||||
Coord.X = Buffer->ShowX + ((short)LOWORD(lParam) / (int)GuiData->CharWidth);
|
Coord.X = Buffer->ShowX + ((short)LOWORD(lParam) / (int)GuiData->CharWidth);
|
||||||
|
@ -1335,7 +1335,7 @@ PointToCoord(PCSRSS_CONSOLE Console, LPARAM lParam)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleLeftMouseDown(HWND hWnd, LPARAM lParam)
|
GuiConsoleLeftMouseDown(HWND hWnd, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
|
|
||||||
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
||||||
|
@ -1353,7 +1353,7 @@ GuiConsoleLeftMouseDown(HWND hWnd, LPARAM lParam)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleLeftMouseUp(HWND hWnd, LPARAM lParam)
|
GuiConsoleLeftMouseUp(HWND hWnd, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
COORD c;
|
COORD c;
|
||||||
|
|
||||||
|
@ -1373,7 +1373,7 @@ GuiConsoleLeftMouseUp(HWND hWnd, LPARAM lParam)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
GuiConsoleMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
COORD c;
|
COORD c;
|
||||||
|
|
||||||
|
@ -1389,7 +1389,7 @@ GuiConsoleMouseMove(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleCopy(HWND hWnd, PCSRSS_CONSOLE Console)
|
GuiConsoleCopy(HWND hWnd, PCONSOLE Console)
|
||||||
{
|
{
|
||||||
if (OpenClipboard(hWnd) == TRUE)
|
if (OpenClipboard(hWnd) == TRUE)
|
||||||
{
|
{
|
||||||
|
@ -1460,7 +1460,7 @@ GuiConsoleCopy(HWND hWnd, PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsolePaste(HWND hWnd, PCSRSS_CONSOLE Console)
|
GuiConsolePaste(HWND hWnd, PCONSOLE Console)
|
||||||
{
|
{
|
||||||
if (OpenClipboard(hWnd) == TRUE)
|
if (OpenClipboard(hWnd) == TRUE)
|
||||||
{
|
{
|
||||||
|
@ -1494,7 +1494,7 @@ GuiConsolePaste(HWND hWnd, PCSRSS_CONSOLE Console)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleRightMouseDown(HWND hWnd)
|
GuiConsoleRightMouseDown(HWND hWnd)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
|
|
||||||
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
||||||
|
@ -1517,7 +1517,7 @@ GuiConsoleRightMouseDown(HWND hWnd)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleShowConsoleProperties(HWND hWnd, BOOL Defaults, PGUI_CONSOLE_DATA GuiData)
|
GuiConsoleShowConsoleProperties(HWND hWnd, BOOL Defaults, PGUI_CONSOLE_DATA GuiData)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
APPLET_PROC CPLFunc;
|
APPLET_PROC CPLFunc;
|
||||||
TCHAR szBuffer[MAX_PATH];
|
TCHAR szBuffer[MAX_PATH];
|
||||||
ConsoleInfo SharedInfo;
|
ConsoleInfo SharedInfo;
|
||||||
|
@ -1590,7 +1590,7 @@ static LRESULT
|
||||||
GuiConsoleHandleSysMenuCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
GuiConsoleHandleSysMenuCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
LRESULT Ret = TRUE;
|
LRESULT Ret = TRUE;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
COORD bottomRight = { 0, 0 };
|
COORD bottomRight = { 0, 0 };
|
||||||
|
|
||||||
|
@ -1642,7 +1642,7 @@ GuiConsoleHandleSysMenuCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleGetMinMaxInfo(HWND hWnd, PMINMAXINFO minMaxInfo)
|
GuiConsoleGetMinMaxInfo(HWND hWnd, PMINMAXINFO minMaxInfo)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
DWORD windx, windy;
|
DWORD windx, windy;
|
||||||
|
|
||||||
|
@ -1667,14 +1667,14 @@ GuiConsoleGetMinMaxInfo(HWND hWnd, PMINMAXINFO minMaxInfo)
|
||||||
static VOID
|
static VOID
|
||||||
GuiConsoleResize(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
GuiConsoleResize(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
||||||
if((Console == NULL) || (GuiData == NULL)) return;
|
if((Console == NULL) || (GuiData == NULL)) return;
|
||||||
|
|
||||||
if ((GuiData->WindowSizeLock == FALSE) && (wParam == SIZE_RESTORED || wParam == SIZE_MAXIMIZED || wParam == SIZE_MINIMIZED))
|
if ((GuiData->WindowSizeLock == FALSE) && (wParam == SIZE_RESTORED || wParam == SIZE_MAXIMIZED || wParam == SIZE_MINIMIZED))
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
||||||
DWORD windx, windy, charx, chary;
|
DWORD windx, windy, charx, chary;
|
||||||
|
|
||||||
GuiData->WindowSizeLock = TRUE;
|
GuiData->WindowSizeLock = TRUE;
|
||||||
|
@ -1748,7 +1748,7 @@ GuiConsoleHandleScrollbarMenu(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS WINAPI
|
static NTSTATUS WINAPI
|
||||||
GuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD Size)
|
GuiResizeBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer, COORD Size)
|
||||||
{
|
{
|
||||||
BYTE * Buffer;
|
BYTE * Buffer;
|
||||||
DWORD Offset = 0;
|
DWORD Offset = 0;
|
||||||
|
@ -1841,10 +1841,10 @@ GuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
GuiApplyUserSettings(PCSRSS_CONSOLE Console, PGUI_CONSOLE_DATA GuiData, PConsoleInfo pConInfo)
|
GuiApplyUserSettings(PCONSOLE Console, PGUI_CONSOLE_DATA GuiData, PConsoleInfo pConInfo)
|
||||||
{
|
{
|
||||||
DWORD windx, windy;
|
DWORD windx, windy;
|
||||||
PCSRSS_SCREEN_BUFFER ActiveBuffer = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER ActiveBuffer = Console->ActiveBuffer;
|
||||||
COORD BufSize;
|
COORD BufSize;
|
||||||
BOOL SizeChanged = FALSE;
|
BOOL SizeChanged = FALSE;
|
||||||
|
|
||||||
|
@ -1891,8 +1891,8 @@ static
|
||||||
LRESULT
|
LRESULT
|
||||||
GuiConsoleHandleScroll(HWND hwnd, UINT uMsg, WPARAM wParam)
|
GuiConsoleHandleScroll(HWND hwnd, UINT uMsg, WPARAM wParam)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PCSRSS_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
PGUI_CONSOLE_DATA GuiData;
|
PGUI_CONSOLE_DATA GuiData;
|
||||||
SCROLLINFO sInfo;
|
SCROLLINFO sInfo;
|
||||||
int fnBar;
|
int fnBar;
|
||||||
|
@ -1998,7 +1998,7 @@ GuiConsoleWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
LRESULT Result = 0;
|
LRESULT Result = 0;
|
||||||
PGUI_CONSOLE_DATA GuiData = NULL;
|
PGUI_CONSOLE_DATA GuiData = NULL;
|
||||||
PCSRSS_CONSOLE Console = NULL;
|
PCONSOLE Console = NULL;
|
||||||
|
|
||||||
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
GuiConsoleGetDataPointers(hWnd, &Console, &GuiData);
|
||||||
|
|
||||||
|
@ -2073,7 +2073,7 @@ GuiConsoleNotifyWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
LONG WindowCount;
|
LONG WindowCount;
|
||||||
MSG Msg;
|
MSG Msg;
|
||||||
PWCHAR Buffer, Title;
|
PWCHAR Buffer, Title;
|
||||||
PCSRSS_CONSOLE Console = (PCSRSS_CONSOLE) lParam;
|
PCONSOLE Console = (PCONSOLE) lParam;
|
||||||
|
|
||||||
switch(msg)
|
switch(msg)
|
||||||
{
|
{
|
||||||
|
@ -2237,13 +2237,13 @@ GuiInit(VOID)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
GuiInitScreenBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buffer)
|
GuiInitScreenBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
Buffer->DefaultAttrib = DEFAULT_ATTRIB;
|
Buffer->DefaultAttrib = DEFAULT_ATTRIB;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
GuiChangeTitle(PCSRSS_CONSOLE Console)
|
GuiChangeTitle(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
PWCHAR Buffer, Title;
|
PWCHAR Buffer, Title;
|
||||||
|
|
||||||
|
@ -2271,7 +2271,7 @@ GuiChangeTitle(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
GuiChangeIcon(PCSRSS_CONSOLE Console, HICON hWindowIcon)
|
GuiChangeIcon(PCONSOLE Console, HICON hWindowIcon)
|
||||||
{
|
{
|
||||||
SendMessageW(Console->hWindow, WM_SETICON, ICON_BIG, (LPARAM)hWindowIcon);
|
SendMessageW(Console->hWindow, WM_SETICON, ICON_BIG, (LPARAM)hWindowIcon);
|
||||||
SendMessageW(Console->hWindow, WM_SETICON, ICON_SMALL, (LPARAM)hWindowIcon);
|
SendMessageW(Console->hWindow, WM_SETICON, ICON_SMALL, (LPARAM)hWindowIcon);
|
||||||
|
@ -2280,12 +2280,12 @@ GuiChangeIcon(PCSRSS_CONSOLE Console, HICON hWindowIcon)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
GuiCleanupConsole(PCSRSS_CONSOLE Console)
|
GuiCleanupConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
SendMessageW(NotifyWnd, PM_DESTROY_CONSOLE, 0, (LPARAM)Console);
|
SendMessageW(NotifyWnd, PM_DESTROY_CONSOLE, 0, (LPARAM)Console);
|
||||||
}
|
}
|
||||||
|
|
||||||
static CSRSS_CONSOLE_VTBL GuiVtbl =
|
static CONSOLE_VTBL GuiVtbl =
|
||||||
{
|
{
|
||||||
GuiInitScreenBuffer,
|
GuiInitScreenBuffer,
|
||||||
GuiWriteStream,
|
GuiWriteStream,
|
||||||
|
@ -2300,7 +2300,7 @@ static CSRSS_CONSOLE_VTBL GuiVtbl =
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
GuiInitConsole(PCSRSS_CONSOLE Console, int ShowCmd)
|
GuiInitConsole(PCONSOLE Console, int ShowCmd)
|
||||||
{
|
{
|
||||||
HANDLE GraphicsStartupEvent;
|
HANDLE GraphicsStartupEvent;
|
||||||
HANDLE ThreadHandle;
|
HANDLE ThreadHandle;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#define CONGUI_UPDATE_TIME 0
|
#define CONGUI_UPDATE_TIME 0
|
||||||
#define CONGUI_UPDATE_TIMER 1
|
#define CONGUI_UPDATE_TIMER 1
|
||||||
|
|
||||||
NTSTATUS FASTCALL GuiInitConsole(PCSRSS_CONSOLE Console, BOOL Visible);
|
NTSTATUS FASTCALL GuiInitConsole(PCONSOLE Console, BOOL Visible);
|
||||||
VOID FASTCALL GuiConsoleHandleScrollbarMenu(VOID);
|
VOID FASTCALL GuiConsoleHandleScrollbarMenu(VOID);
|
||||||
|
|
||||||
/*EOF*/
|
/*EOF*/
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
/* PRIVATE FUNCTIONS *********************************************************/
|
/* PRIVATE FUNCTIONS *********************************************************/
|
||||||
|
|
||||||
static INT
|
static INT
|
||||||
AdjustHandleCounts(PCSRSS_HANDLE Entry, INT Change)
|
AdjustHandleCounts(PCONSOLE_IO_HANDLE Entry, INT Change)
|
||||||
{
|
{
|
||||||
Object_t *Object = Entry->Object;
|
Object_t *Object = Entry->Object;
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ AdjustHandleCounts(PCSRSS_HANDLE Entry, INT Change)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
Win32CsrCreateHandleEntry(PCSRSS_HANDLE Entry)
|
Win32CsrCreateHandleEntry(PCONSOLE_IO_HANDLE Entry)
|
||||||
{
|
{
|
||||||
Object_t *Object = Entry->Object;
|
Object_t *Object = Entry->Object;
|
||||||
EnterCriticalSection(&Object->Console->Lock);
|
EnterCriticalSection(&Object->Console->Lock);
|
||||||
|
@ -44,12 +44,12 @@ Win32CsrCreateHandleEntry(PCSRSS_HANDLE Entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
Win32CsrCloseHandleEntry(PCSRSS_HANDLE Entry)
|
Win32CsrCloseHandleEntry(PCONSOLE_IO_HANDLE Entry)
|
||||||
{
|
{
|
||||||
Object_t *Object = Entry->Object;
|
Object_t *Object = Entry->Object;
|
||||||
if (Object != NULL)
|
if (Object != NULL)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console = Object->Console;
|
PCONSOLE Console = Object->Console;
|
||||||
EnterCriticalSection(&Console->Lock);
|
EnterCriticalSection(&Console->Lock);
|
||||||
|
|
||||||
/* If the last handle to a screen buffer is closed, delete it... */
|
/* If the last handle to a screen buffer is closed, delete it... */
|
||||||
|
@ -57,7 +57,7 @@ Win32CsrCloseHandleEntry(PCSRSS_HANDLE Entry)
|
||||||
{
|
{
|
||||||
if (Object->Type == CONIO_SCREEN_BUFFER_MAGIC)
|
if (Object->Type == CONIO_SCREEN_BUFFER_MAGIC)
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buffer = (PCSRSS_SCREEN_BUFFER)Object;
|
PCONSOLE_SCREEN_BUFFER Buffer = (PCONSOLE_SCREEN_BUFFER)Object;
|
||||||
/* ...unless it's the only buffer left. Windows allows deletion
|
/* ...unless it's the only buffer left. Windows allows deletion
|
||||||
* even of the last buffer, but having to deal with a lack of
|
* even of the last buffer, but having to deal with a lack of
|
||||||
* any active buffer might be error-prone. */
|
* any active buffer might be error-prone. */
|
||||||
|
@ -89,7 +89,7 @@ Win32CsrInsertObject(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
DWORD ShareMode)
|
DWORD ShareMode)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
PCSRSS_HANDLE Block;
|
PCONSOLE_IO_HANDLE Block;
|
||||||
|
|
||||||
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
|
RtlEnterCriticalSection(&ProcessData->HandleTableLock);
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Win32CsrInsertObject(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
{
|
{
|
||||||
Block = RtlAllocateHeap(ConSrvHeap,
|
Block = RtlAllocateHeap(ConSrvHeap,
|
||||||
HEAP_ZERO_MEMORY,
|
HEAP_ZERO_MEMORY,
|
||||||
(ProcessData->HandleTableSize + 64) * sizeof(CSRSS_HANDLE));
|
(ProcessData->HandleTableSize + 64) * sizeof(CONSOLE_IO_HANDLE));
|
||||||
if (Block == NULL)
|
if (Block == NULL)
|
||||||
{
|
{
|
||||||
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
RtlLeaveCriticalSection(&ProcessData->HandleTableLock);
|
||||||
|
@ -112,7 +112,7 @@ Win32CsrInsertObject(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
}
|
}
|
||||||
RtlCopyMemory(Block,
|
RtlCopyMemory(Block,
|
||||||
ProcessData->HandleTable,
|
ProcessData->HandleTable,
|
||||||
ProcessData->HandleTableSize * sizeof(CSRSS_HANDLE));
|
ProcessData->HandleTableSize * sizeof(CONSOLE_IO_HANDLE));
|
||||||
RtlFreeHeap(ConSrvHeap, 0, ProcessData->HandleTable);
|
RtlFreeHeap(ConSrvHeap, 0, ProcessData->HandleTable);
|
||||||
ProcessData->HandleTable = Block;
|
ProcessData->HandleTable = Block;
|
||||||
ProcessData->HandleTableSize += 64;
|
ProcessData->HandleTableSize += 64;
|
||||||
|
@ -186,7 +186,7 @@ Win32CsrLockObject(PCONSOLE_PROCESS_DATA ProcessData,
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL
|
VOID FASTCALL
|
||||||
Win32CsrUnlockConsole(PCSRSS_CONSOLE Console)
|
Win32CsrUnlockConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
LeaveCriticalSection(&Console->Lock);
|
LeaveCriticalSection(&Console->Lock);
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ ConsoleNewProcess(PCSR_PROCESS SourceProcess,
|
||||||
TargetProcessData->HandleTable = RtlAllocateHeap(ConSrvHeap,
|
TargetProcessData->HandleTable = RtlAllocateHeap(ConSrvHeap,
|
||||||
HEAP_ZERO_MEMORY,
|
HEAP_ZERO_MEMORY,
|
||||||
SourceProcessData->HandleTableSize
|
SourceProcessData->HandleTableSize
|
||||||
* sizeof(CSRSS_HANDLE));
|
* sizeof(CONSOLE_IO_HANDLE));
|
||||||
if (TargetProcessData->HandleTable == NULL)
|
if (TargetProcessData->HandleTable == NULL)
|
||||||
{
|
{
|
||||||
RtlLeaveCriticalSection(&SourceProcessData->HandleTableLock);
|
RtlLeaveCriticalSection(&SourceProcessData->HandleTableLock);
|
||||||
|
@ -335,7 +335,7 @@ ConsoleConnect(IN PCSR_PROCESS CsrProcess,
|
||||||
PCONSOLE_CONNECTION_INFO ConnectInfo = (PCONSOLE_CONNECTION_INFO)ConnectionInfo;
|
PCONSOLE_CONNECTION_INFO ConnectInfo = (PCONSOLE_CONNECTION_INFO)ConnectionInfo;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrProcess);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrProcess);
|
||||||
BOOLEAN NewConsole = FALSE;
|
BOOLEAN NewConsole = FALSE;
|
||||||
// PCSRSS_CONSOLE Console = NULL;
|
// PCONSOLE Console = NULL;
|
||||||
|
|
||||||
DPRINT1("ConsoleConnect\n");
|
DPRINT1("ConsoleConnect\n");
|
||||||
|
|
||||||
|
@ -511,7 +511,7 @@ WINAPI
|
||||||
Win32CsrReleaseConsole(PCSR_PROCESS Process)
|
Win32CsrReleaseConsole(PCSR_PROCESS Process)
|
||||||
{
|
{
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
|
||||||
DPRINT1("Win32CsrReleaseConsole\n");
|
DPRINT1("Win32CsrReleaseConsole\n");
|
||||||
|
@ -604,7 +604,7 @@ CSR_API(SrvVerifyConsoleIoHandle)
|
||||||
|
|
||||||
CSR_API(SrvDuplicateHandle)
|
CSR_API(SrvDuplicateHandle)
|
||||||
{
|
{
|
||||||
PCSRSS_HANDLE Entry;
|
PCONSOLE_IO_HANDLE Entry;
|
||||||
DWORD DesiredAccess;
|
DWORD DesiredAccess;
|
||||||
PCONSOLE_DUPLICATEHANDLE DuplicateHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.DuplicateHandleRequest;
|
PCONSOLE_DUPLICATEHANDLE DuplicateHandleRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.DuplicateHandleRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
typedef struct tagHISTORY_BUFFER
|
typedef struct _HISTORY_BUFFER
|
||||||
{
|
{
|
||||||
LIST_ENTRY ListEntry;
|
LIST_ENTRY ListEntry;
|
||||||
UINT Position;
|
UINT Position;
|
||||||
|
@ -27,7 +27,7 @@ typedef struct tagHISTORY_BUFFER
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
static PHISTORY_BUFFER
|
static PHISTORY_BUFFER
|
||||||
HistoryCurrentBuffer(PCSRSS_CONSOLE Console)
|
HistoryCurrentBuffer(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
/* TODO: use actual EXE name sent from process that called ReadConsole */
|
/* TODO: use actual EXE name sent from process that called ReadConsole */
|
||||||
UNICODE_STRING ExeName = { 14, 14, L"cmd.exe" };
|
UNICODE_STRING ExeName = { 14, 14, L"cmd.exe" };
|
||||||
|
@ -61,7 +61,7 @@ HistoryCurrentBuffer(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
HistoryAddEntry(PCSRSS_CONSOLE Console)
|
HistoryAddEntry(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
UNICODE_STRING NewEntry;
|
UNICODE_STRING NewEntry;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
|
@ -113,7 +113,7 @@ HistoryAddEntry(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
HistoryGetCurrentEntry(PCSRSS_CONSOLE Console, PUNICODE_STRING Entry)
|
HistoryGetCurrentEntry(PCONSOLE Console, PUNICODE_STRING Entry)
|
||||||
{
|
{
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
if (!(Hist = HistoryCurrentBuffer(Console)) || Hist->NumEntries == 0)
|
if (!(Hist = HistoryCurrentBuffer(Console)) || Hist->NumEntries == 0)
|
||||||
|
@ -123,7 +123,7 @@ HistoryGetCurrentEntry(PCSRSS_CONSOLE Console, PUNICODE_STRING Entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
static PHISTORY_BUFFER
|
static PHISTORY_BUFFER
|
||||||
HistoryFindBuffer(PCSRSS_CONSOLE Console, PUNICODE_STRING ExeName)
|
HistoryFindBuffer(PCONSOLE Console, PUNICODE_STRING ExeName)
|
||||||
{
|
{
|
||||||
PLIST_ENTRY Entry = Console->HistoryBuffers.Flink;
|
PLIST_ENTRY Entry = Console->HistoryBuffers.Flink;
|
||||||
while (Entry != &Console->HistoryBuffers)
|
while (Entry != &Console->HistoryBuffers)
|
||||||
|
@ -153,7 +153,7 @@ CSR_API(SrvGetConsoleCommandHistoryLength)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryLengthRequest;
|
PCONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryLengthRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
ULONG Length = 0;
|
ULONG Length = 0;
|
||||||
|
@ -186,7 +186,7 @@ CSR_API(SrvGetConsoleCommandHistory)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryRequest;
|
PCONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCommandHistoryRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
PBYTE Buffer = (PBYTE)GetCommandHistoryRequest->History;
|
PBYTE Buffer = (PBYTE)GetCommandHistoryRequest->History;
|
||||||
|
@ -234,7 +234,7 @@ CSR_API(SrvExpungeConsoleCommandHistory)
|
||||||
{
|
{
|
||||||
PCONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ExpungeCommandHistoryRequest;
|
PCONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.ExpungeCommandHistoryRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
@ -260,7 +260,7 @@ CSR_API(SrvSetConsoleNumberOfCommands)
|
||||||
{
|
{
|
||||||
PCONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryNumberCommandsRequest;
|
PCONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetHistoryNumberCommandsRequest;
|
||||||
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrGetClientThread()->Process);
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
UINT MaxEntries = SetHistoryNumberCommandsRequest->NumCommands;
|
UINT MaxEntries = SetHistoryNumberCommandsRequest->NumCommands;
|
||||||
|
@ -310,7 +310,7 @@ CSR_API(SrvSetConsoleNumberOfCommands)
|
||||||
CSR_API(SrvGetConsoleHistory)
|
CSR_API(SrvGetConsoleHistory)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
|
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
@ -325,7 +325,7 @@ CSR_API(SrvGetConsoleHistory)
|
||||||
CSR_API(SrvSetConsoleHistory)
|
CSR_API(SrvSetConsoleHistory)
|
||||||
{
|
{
|
||||||
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
|
PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.HistoryInfoRequest;
|
||||||
PCSRSS_CONSOLE Console;
|
PCONSOLE Console;
|
||||||
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
NTSTATUS Status = ConioConsoleFromProcessData(ConsoleGetPerProcessData(CsrGetClientThread()->Process), &Console);
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
@ -338,11 +338,11 @@ CSR_API(SrvSetConsoleHistory)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
LineInputSetPos(PCSRSS_CONSOLE Console, UINT Pos)
|
LineInputSetPos(PCONSOLE Console, UINT Pos)
|
||||||
{
|
{
|
||||||
if (Pos != Console->LinePos && Console->Mode & ENABLE_ECHO_INPUT)
|
if (Pos != Console->LinePos && Console->Mode & ENABLE_ECHO_INPUT)
|
||||||
{
|
{
|
||||||
PCSRSS_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buffer = Console->ActiveBuffer;
|
||||||
UINT OldCursorX = Buffer->CurrentX;
|
UINT OldCursorX = Buffer->CurrentX;
|
||||||
UINT OldCursorY = Buffer->CurrentY;
|
UINT OldCursorY = Buffer->CurrentY;
|
||||||
INT XY = OldCursorY * Buffer->MaxX + OldCursorX;
|
INT XY = OldCursorY * Buffer->MaxX + OldCursorX;
|
||||||
|
@ -362,7 +362,7 @@ LineInputSetPos(PCSRSS_CONSOLE Console, UINT Pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
LineInputEdit(PCSRSS_CONSOLE Console, UINT NumToDelete, UINT NumToInsert, WCHAR *Insertion)
|
LineInputEdit(PCONSOLE Console, UINT NumToDelete, UINT NumToInsert, WCHAR *Insertion)
|
||||||
{
|
{
|
||||||
UINT Pos = Console->LinePos;
|
UINT Pos = Console->LinePos;
|
||||||
UINT NewSize = Console->LineSize - NumToDelete + NumToInsert;
|
UINT NewSize = Console->LineSize - NumToDelete + NumToInsert;
|
||||||
|
@ -399,7 +399,7 @@ LineInputEdit(PCSRSS_CONSOLE Console, UINT NumToDelete, UINT NumToInsert, WCHAR
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID
|
static VOID
|
||||||
LineInputRecallHistory(PCSRSS_CONSOLE Console, INT Offset)
|
LineInputRecallHistory(PCONSOLE Console, INT Offset)
|
||||||
{
|
{
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
|
|
||||||
|
@ -418,7 +418,7 @@ LineInputRecallHistory(PCSRSS_CONSOLE Console, INT Offset)
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID FASTCALL
|
VOID FASTCALL
|
||||||
LineInputKeyDown(PCSRSS_CONSOLE Console, KEY_EVENT_RECORD *KeyEvent)
|
LineInputKeyDown(PCONSOLE Console, KEY_EVENT_RECORD *KeyEvent)
|
||||||
{
|
{
|
||||||
UINT Pos = Console->LinePos;
|
UINT Pos = Console->LinePos;
|
||||||
PHISTORY_BUFFER Hist;
|
PHISTORY_BUFFER Hist;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
CRITICAL_SECTION ActiveConsoleLock;
|
CRITICAL_SECTION ActiveConsoleLock;
|
||||||
static COORD PhysicalConsoleSize;
|
static COORD PhysicalConsoleSize;
|
||||||
static HANDLE ConsoleDeviceHandle;
|
static HANDLE ConsoleDeviceHandle;
|
||||||
static PCSRSS_CONSOLE ActiveConsole;
|
static PCONSOLE ActiveConsole;
|
||||||
|
|
||||||
static BOOL ConsInitialized = FALSE;
|
static BOOL ConsInitialized = FALSE;
|
||||||
|
|
||||||
|
@ -134,13 +134,13 @@ TuiInit(DWORD OemCP)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
TuiInitScreenBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buffer)
|
TuiInitScreenBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buffer)
|
||||||
{
|
{
|
||||||
Buffer->DefaultAttrib = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
|
Buffer->DefaultAttrib = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FASTCALL
|
static void FASTCALL
|
||||||
TuiCopyRect(char *Dest, PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *Region)
|
TuiCopyRect(char *Dest, PCONSOLE_SCREEN_BUFFER Buff, SMALL_RECT *Region)
|
||||||
{
|
{
|
||||||
UINT SrcDelta, DestDelta;
|
UINT SrcDelta, DestDelta;
|
||||||
LONG i;
|
LONG i;
|
||||||
|
@ -163,10 +163,10 @@ TuiCopyRect(char *Dest, PCSRSS_SCREEN_BUFFER Buff, SMALL_RECT *Region)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
TuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
|
TuiDrawRegion(PCONSOLE Console, SMALL_RECT *Region)
|
||||||
{
|
{
|
||||||
DWORD BytesReturned;
|
DWORD BytesReturned;
|
||||||
PCSRSS_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
||||||
PCONSOLE_DRAW ConsoleDraw;
|
PCONSOLE_DRAW ConsoleDraw;
|
||||||
UINT ConsoleDrawSize;
|
UINT ConsoleDrawSize;
|
||||||
|
|
||||||
|
@ -204,11 +204,11 @@ TuiDrawRegion(PCSRSS_CONSOLE Console, SMALL_RECT *Region)
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
TuiWriteStream(PCSRSS_CONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LONG CursorStartY,
|
TuiWriteStream(PCONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LONG CursorStartY,
|
||||||
UINT ScrolledLines, CHAR *Buffer, UINT Length)
|
UINT ScrolledLines, CHAR *Buffer, UINT Length)
|
||||||
{
|
{
|
||||||
DWORD BytesWritten;
|
DWORD BytesWritten;
|
||||||
PCSRSS_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
PCONSOLE_SCREEN_BUFFER Buff = Console->ActiveBuffer;
|
||||||
|
|
||||||
if (ActiveConsole->ActiveBuffer != Buff)
|
if (ActiveConsole->ActiveBuffer != Buff)
|
||||||
{
|
{
|
||||||
|
@ -222,7 +222,7 @@ TuiWriteStream(PCSRSS_CONSOLE Console, SMALL_RECT *Region, LONG CursorStartX, LO
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
TuiSetCursorInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
TuiSetCursorInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff)
|
||||||
{
|
{
|
||||||
CONSOLE_CURSOR_INFO Info;
|
CONSOLE_CURSOR_INFO Info;
|
||||||
DWORD BytesReturned;
|
DWORD BytesReturned;
|
||||||
|
@ -246,7 +246,7 @@ TuiSetCursorInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
TuiSetScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff, UINT OldCursorX, UINT OldCursorY)
|
TuiSetScreenInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff, UINT OldCursorX, UINT OldCursorY)
|
||||||
{
|
{
|
||||||
CONSOLE_SCREEN_BUFFER_INFO Info;
|
CONSOLE_SCREEN_BUFFER_INFO Info;
|
||||||
DWORD BytesReturned;
|
DWORD BytesReturned;
|
||||||
|
@ -272,19 +272,19 @@ TuiSetScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff, UINT OldCurs
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
TuiUpdateScreenInfo(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER Buff)
|
TuiUpdateScreenInfo(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER Buff)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
TuiChangeTitle(PCSRSS_CONSOLE Console)
|
TuiChangeTitle(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VOID WINAPI
|
static VOID WINAPI
|
||||||
TuiCleanupConsole(PCSRSS_CONSOLE Console)
|
TuiCleanupConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
DestroyWindow(Console->hWindow);
|
DestroyWindow(Console->hWindow);
|
||||||
|
|
||||||
|
@ -310,13 +310,13 @@ TuiCleanupConsole(PCSRSS_CONSOLE Console)
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL WINAPI
|
static BOOL WINAPI
|
||||||
TuiChangeIcon(PCSRSS_CONSOLE Console, HICON hWindowIcon)
|
TuiChangeIcon(PCONSOLE Console, HICON hWindowIcon)
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS WINAPI
|
static NTSTATUS WINAPI
|
||||||
TuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD Size)
|
TuiResizeBuffer(PCONSOLE Console, PCONSOLE_SCREEN_BUFFER ScreenBuffer, COORD Size)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
|
@ -325,7 +325,7 @@ TuiResizeBuffer(PCSRSS_CONSOLE Console, PCSRSS_SCREEN_BUFFER ScreenBuffer, COORD
|
||||||
DWORD WINAPI
|
DWORD WINAPI
|
||||||
TuiConsoleThread(PVOID Data)
|
TuiConsoleThread(PVOID Data)
|
||||||
{
|
{
|
||||||
PCSRSS_CONSOLE Console = (PCSRSS_CONSOLE) Data;
|
PCONSOLE Console = (PCONSOLE) Data;
|
||||||
HWND NewWindow;
|
HWND NewWindow;
|
||||||
MSG msg;
|
MSG msg;
|
||||||
|
|
||||||
|
@ -363,7 +363,7 @@ TuiConsoleThread(PVOID Data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static CSRSS_CONSOLE_VTBL TuiVtbl =
|
static CONSOLE_VTBL TuiVtbl =
|
||||||
{
|
{
|
||||||
TuiInitScreenBuffer,
|
TuiInitScreenBuffer,
|
||||||
TuiWriteStream,
|
TuiWriteStream,
|
||||||
|
@ -378,7 +378,7 @@ static CSRSS_CONSOLE_VTBL TuiVtbl =
|
||||||
};
|
};
|
||||||
|
|
||||||
NTSTATUS FASTCALL
|
NTSTATUS FASTCALL
|
||||||
TuiInitConsole(PCSRSS_CONSOLE Console)
|
TuiInitConsole(PCONSOLE Console)
|
||||||
{
|
{
|
||||||
HANDLE ThreadHandle;
|
HANDLE ThreadHandle;
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ TuiInitConsole(PCSRSS_CONSOLE Console)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
PCSRSS_CONSOLE FASTCALL
|
PCONSOLE FASTCALL
|
||||||
TuiGetFocusConsole(VOID)
|
TuiGetFocusConsole(VOID)
|
||||||
{
|
{
|
||||||
return ActiveConsole;
|
return ActiveConsole;
|
||||||
|
@ -439,7 +439,7 @@ TuiGetFocusConsole(VOID)
|
||||||
BOOL FASTCALL
|
BOOL FASTCALL
|
||||||
TuiSwapConsole(int Next)
|
TuiSwapConsole(int Next)
|
||||||
{
|
{
|
||||||
static PCSRSS_CONSOLE SwapConsole = NULL; /* console we are thinking about swapping with */
|
static PCONSOLE SwapConsole = NULL; /* console we are thinking about swapping with */
|
||||||
DWORD BytesReturned;
|
DWORD BytesReturned;
|
||||||
ANSI_STRING Title;
|
ANSI_STRING Title;
|
||||||
void * Buffer;
|
void * Buffer;
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
|
|
||||||
#include "conio.h"
|
#include "conio.h"
|
||||||
|
|
||||||
extern NTSTATUS FASTCALL TuiInitConsole(PCSRSS_CONSOLE Console);
|
extern NTSTATUS FASTCALL TuiInitConsole(PCONSOLE Console);
|
||||||
extern PCSRSS_CONSOLE FASTCALL TuiGetFocusConsole(VOID);
|
extern PCONSOLE FASTCALL TuiGetFocusConsole(VOID);
|
||||||
extern BOOL FASTCALL TuiSwapConsole(int Next);
|
extern BOOL FASTCALL TuiSwapConsole(int Next);
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
Loading…
Reference in a new issue