+++ /dev/null
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS Console Server DLL
- * FILE: include/reactos/subsys/win/conmsg.h
- * PURPOSE: Public definitions for communication
- * between Console API Clients and Servers
- * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
- */
-
-#ifndef _CONMSG_H
-#define _CONMSG_H
-
-#pragma once
-
-#define CONSRV_SERVERDLL_INDEX 2
-#define CONSRV_FIRST_API_NUMBER 512
-
-// Windows Server 2003 table from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
-typedef enum _CONSRV_API_NUMBER
-{
- ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
- ConsolepGetConsoleInput,
- ConsolepWriteConsoleInput,
- ConsolepReadConsoleOutput,
- ConsolepWriteConsoleOutput,
- ConsolepReadConsoleOutputString,
- ConsolepWriteConsoleOutputString,
- ConsolepFillConsoleOutput,
- ConsolepGetMode,
- ConsolepGetNumberOfFonts,
- ConsolepGetNumberOfInputEvents,
- ConsolepGetScreenBufferInfo,
- ConsolepGetCursorInfo,
- ConsolepGetMouseInfo,
- ConsolepGetFontInfo,
- ConsolepGetFontSize,
- ConsolepGetCurrentFont,
- ConsolepSetMode,
- ConsolepSetActiveScreenBuffer,
- ConsolepFlushInputBuffer,
- ConsolepGetLargestWindowSize,
- ConsolepSetScreenBufferSize,
- ConsolepSetCursorPosition,
- ConsolepSetCursorInfo,
- ConsolepSetWindowInfo,
- ConsolepScrollScreenBuffer,
- ConsolepSetTextAttribute,
- ConsolepSetFont,
- ConsolepSetIcon,
- ConsolepReadConsole,
- ConsolepWriteConsole,
- ConsolepDuplicateHandle,
- ConsolepGetHandleInformation,
- ConsolepSetHandleInformation,
- ConsolepCloseHandle,
- ConsolepVerifyIoHandle,
- ConsolepAlloc, // Not present in Win7
- ConsolepFree, // Not present in Win7
- ConsolepGetTitle,
- ConsolepSetTitle,
- ConsolepCreateScreenBuffer,
- ConsolepInvalidateBitMapRect,
- ConsolepVDMOperation,
- ConsolepSetCursor,
- ConsolepShowCursor,
- ConsolepMenuControl,
- ConsolepSetPalette,
- ConsolepSetDisplayMode,
- ConsolepRegisterVDM,
- ConsolepGetHardwareState,
- ConsolepSetHardwareState,
- ConsolepGetDisplayMode,
- ConsolepAddAlias,
- ConsolepGetAlias,
- ConsolepGetAliasesLength,
- ConsolepGetAliasExesLength,
- ConsolepGetAliases,
- ConsolepGetAliasExes,
- ConsolepExpungeCommandHistory,
- ConsolepSetNumberOfCommands,
- ConsolepGetCommandHistoryLength,
- ConsolepGetCommandHistory,
- ConsolepSetCommandHistoryMode, // Not present in Vista+
- ConsolepGetCP,
- ConsolepSetCP,
- ConsolepSetKeyShortcuts,
- ConsolepSetMenuClose,
- ConsolepNotifyLastClose,
- ConsolepGenerateCtrlEvent,
- ConsolepGetKeyboardLayoutName,
- ConsolepGetConsoleWindow,
- ConsolepCharType,
- ConsolepSetLocalEUDC,
- ConsolepSetCursorMode,
- ConsolepGetCursorMode,
- ConsolepRegisterOS2,
- ConsolepSetOS2OemFormat,
- ConsolepGetNlsMode,
- ConsolepSetNlsMode,
- ConsolepRegisterConsoleIME, // Not present in Win7
- ConsolepUnregisterConsoleIME, // Not present in Win7
- // ConsolepQueryConsoleIME, // Added only in Vista and Win2k8, not present in Win7
- ConsolepGetLangId,
- ConsolepAttach, // Not present in Win7
- ConsolepGetSelectionInfo,
- ConsolepGetProcessList,
-
- ConsolepGetHistory, // Added in Vista+
- ConsolepSetHistory, // Added in Vista+
- // ConsolepSetCurrentFont, // Added in Vista+
- // ConsolepSetScreenBufferInfo, // Added in Vista+
- // ConsolepClientConnect, // Added in Win7
-
- ConsolepMaxApiNumber
-} CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;
-
-//
-// See http://msdn.microsoft.com/en-us/library/windows/desktop/bb773359(v=vs.85).aspx
-//
-typedef struct _CONSOLE_PROPERTIES
-{
- INT IconIndex;
- HICON hIcon;
- HICON hIconSm;
- DWORD dwHotKey;
- DWORD dwStartupFlags;
-
- // NT_CONSOLE_PROPS
- WORD wFillAttribute;
- WORD wPopupFillAttribute;
-
- //
- // Not on MSDN, but show up in binary
- //
- WORD wShowWindow;
- WORD wUnknown;
-
- COORD dwScreenBufferSize;
- COORD dwWindowSize;
- COORD dwWindowOrigin;
- DWORD nFont;
- DWORD nInputBufferSize;
- COORD dwFontSize;
- UINT uFontFamily;
- UINT uFontWeight;
- WCHAR FaceName[LF_FACESIZE];
- UINT uCursorSize;
- BOOL bFullScreen;
- BOOL bQuickEdit;
- BOOL bInsertMode;
- BOOL bAutoPosition;
- UINT uHistoryBufferSize;
- UINT uNumberOfHistoryBuffers;
- BOOL bHistoryNoDup;
- COLORREF ColorTable[16];
-
- // NT_FE_CONSOLE_PROPS
- UINT uCodePage;
-} CONSOLE_PROPERTIES;
-
-enum
-{
- INIT_SUCCESS, // STATUS_WAIT_0
- INIT_FAILURE, // STATUS_WAIT_1
- MAX_INIT_EVENTS
-};
-
-typedef struct _CONSOLE_START_INFO
-{
- HANDLE ConsoleHandle;
- HANDLE InputWaitHandle;
- HANDLE InputHandle;
- HANDLE OutputHandle;
- HANDLE ErrorHandle;
- HANDLE InitEvents[MAX_INIT_EVENTS];
-
- CONSOLE_PROPERTIES;
-} CONSOLE_START_INFO, *PCONSOLE_START_INFO;
-
-#if defined(_M_IX86)
-C_ASSERT(sizeof(CONSOLE_START_INFO) == 0xFC);
-#endif
-
-typedef struct _CONSRV_API_CONNECTINFO
-{
- CONSOLE_START_INFO ConsoleStartInfo;
-
- BOOLEAN IsConsoleApp;
- BOOLEAN IsWindowVisible;
-
- // USHORT Padding;
-
- LPTHREAD_START_ROUTINE CtrlRoutine;
- LPTHREAD_START_ROUTINE PropRoutine;
- LPTHREAD_START_ROUTINE ImeRoutine;
-
- ULONG TitleLength;
- WCHAR ConsoleTitle[MAX_PATH + 1]; // Console title or full path to the startup shortcut
- ULONG DesktopLength;
- PWCHAR Desktop; // Contrary to the case of CONSOLE_ALLOCCONSOLE, the
- // desktop string is allocated in the process' heap,
- // and CSR will read it via NtReadVirtualMemory.
- ULONG AppNameLength;
- WCHAR AppName[128]; // Full path of the launched app
- ULONG CurDirLength;
- WCHAR CurDir[MAX_PATH + 1];
-} CONSRV_API_CONNECTINFO, *PCONSRV_API_CONNECTINFO;
-
-#if defined(_M_IX86)
-C_ASSERT(sizeof(CONSRV_API_CONNECTINFO) == 0x638);
-#endif
-
-typedef struct _CONSOLE_GETPROCESSLIST
-{
- HANDLE ConsoleHandle;
- ULONG ProcessCount;
- PDWORD ProcessIdsList;
-} CONSOLE_GETPROCESSLIST, *PCONSOLE_GETPROCESSLIST;
-
-typedef struct _CONSOLE_GENERATECTRLEVENT
-{
- HANDLE ConsoleHandle;
- DWORD CtrlEvent;
- DWORD ProcessGroupId;
-} CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
-
-typedef struct _CONSOLE_NOTIFYLASTCLOSE
-{
- HANDLE ConsoleHandle;
-} CONSOLE_NOTIFYLASTCLOSE, *PCONSOLE_NOTIFYLASTCLOSE;
-
-
-
-typedef struct _CONSOLE_WRITECONSOLE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
-
- CHAR StaticBuffer[80];
- PVOID Buffer; // BufPtr
- ULONG NumBytes;
-
- // On Windows, the client never uses this member
- ULONG Reserved1;
-
- BOOLEAN UsingStaticBuffer;
- BOOLEAN Unicode;
-
- // On Windows, the client never uses this member
- CHAR Reserved2[6];
-} CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
-
-typedef struct _CONSOLE_READCONSOLE
-{
- HANDLE ConsoleHandle;
- HANDLE InputHandle;
-
- USHORT ExeLength;
-
- CHAR StaticBuffer[80];
- PVOID Buffer; // BufPtr
- ULONG NumBytes;
-
- ULONG CaptureBufferSize;
-
- ULONG InitialNumBytes;
- ULONG CtrlWakeupMask;
- ULONG ControlKeyState;
- BOOLEAN Unicode;
-} CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
-
-typedef struct _CONSOLE_ALLOCCONSOLE
-{
- PCONSOLE_START_INFO ConsoleStartInfo;
-
- ULONG TitleLength;
- PWCHAR ConsoleTitle; // Console title or full path to the startup shortcut
- ULONG DesktopLength;
- PWCHAR Desktop;
- ULONG AppNameLength;
- PWCHAR AppName; // Full path of the launched app
- ULONG CurDirLength;
- PWCHAR CurDir;
-
- LPTHREAD_START_ROUTINE CtrlRoutine;
- LPTHREAD_START_ROUTINE PropRoutine;
-} CONSOLE_ALLOCCONSOLE, *PCONSOLE_ALLOCCONSOLE;
-
-typedef struct _CONSOLE_ATTACHCONSOLE
-{
- /*
- * If ProcessId == ATTACH_PARENT_PROCESS == -1, then attach
- * the current process to its parent process console.
- */
- DWORD ProcessId;
-
- PCONSOLE_START_INFO ConsoleStartInfo;
-
- LPTHREAD_START_ROUTINE CtrlRoutine;
- LPTHREAD_START_ROUTINE PropRoutine;
-} CONSOLE_ATTACHCONSOLE, *PCONSOLE_ATTACHCONSOLE;
-
-typedef struct _CONSOLE_FREECONSOLE
-{
- HANDLE ConsoleHandle;
-} CONSOLE_FREECONSOLE, *PCONSOLE_FREECONSOLE;
-
-typedef struct _CONSOLE_GETSCREENBUFFERINFO
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD ScreenBufferSize;
- COORD CursorPosition;
- COORD ViewOrigin;
- WORD Attributes;
- COORD ViewSize;
- COORD MaximumViewSize;
-} CONSOLE_GETSCREENBUFFERINFO, *PCONSOLE_GETSCREENBUFFERINFO;
-
-typedef struct _CONSOLE_SETCURSORPOSITION
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD Position;
-} CONSOLE_SETCURSORPOSITION, *PCONSOLE_SETCURSORPOSITION;
-
-typedef struct _CONSOLE_SHOWCURSOR
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- BOOL Show;
- INT RefCount;
-} CONSOLE_SHOWCURSOR, *PCONSOLE_SHOWCURSOR;
-
-typedef struct _CONSOLE_SETCURSOR
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- HCURSOR CursorHandle;
-} CONSOLE_SETCURSOR, *PCONSOLE_SETCURSOR;
-
-typedef struct _CONSOLE_GETSETCURSORINFO
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- CONSOLE_CURSOR_INFO Info;
-/*
- DWORD Size;
- BOOLEAN Visible;
-*/
-} CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
-
-typedef struct _CONSOLE_GETMOUSEINFO
-{
- HANDLE ConsoleHandle;
- ULONG NumButtons;
-} CONSOLE_GETMOUSEINFO, *PCONSOLE_GETMOUSEINFO;
-
-typedef struct _CONSOLE_SETTEXTATTRIB
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- WORD Attributes;
-} CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB;
-
-typedef struct _CONSOLE_GETSETCONSOLEMODE
-{
- HANDLE ConsoleHandle;
- HANDLE Handle;
- DWORD Mode;
-} CONSOLE_GETSETCONSOLEMODE, *PCONSOLE_GETSETCONSOLEMODE;
-
-typedef struct _CONSOLE_GETDISPLAYMODE
-{
- HANDLE ConsoleHandle;
- DWORD DisplayMode; // ModeFlags
-} CONSOLE_GETDISPLAYMODE, *PCONSOLE_GETDISPLAYMODE;
-
-typedef struct _CONSOLE_SETDISPLAYMODE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- DWORD DisplayMode; // ModeFlags
- COORD NewSBDim;
- HANDLE EventHandle;
-} CONSOLE_SETDISPLAYMODE, *PCONSOLE_SETDISPLAYMODE;
-
-/*
- * Console hardware states.
- */
-#define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
-#define CONSOLE_HARDWARE_STATE_DIRECT 1
-
-typedef struct _CONSOLE_GETSETHWSTATE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- DWORD Flags;
- DWORD State;
-} CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE;
-
-
-typedef struct _CONSOLE_GETNUMFONTS
-{
- HANDLE ConsoleHandle;
- DWORD NumFonts;
-} CONSOLE_GETNUMFONTS, *PCONSOLE_GETNUMFONTS;
-
-typedef struct _CONSOLE_GETFONTINFO
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- BOOLEAN MaximumWindow;
- PCONSOLE_FONT_INFO FontInfo;
- DWORD NumFonts;
-} CONSOLE_GETFONTINFO, *PCONSOLE_GETFONTINFO;
-
-typedef struct _CONSOLE_GETFONTSIZE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- DWORD FontIndex;
- COORD FontSize;
-} CONSOLE_GETFONTSIZE, *PCONSOLE_GETFONTSIZE;
-
-typedef struct _CONSOLE_GETCURRENTFONT
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- BOOLEAN MaximumWindow;
- DWORD FontIndex;
- COORD FontSize;
-} CONSOLE_GETCURRENTFONT, *PCONSOLE_GETCURRENTFONT;
-
-typedef struct _CONSOLE_SETFONT
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- DWORD FontIndex;
-} CONSOLE_SETFONT, *PCONSOLE_SETFONT;
-
-
-
-typedef struct _CONSOLE_CREATESCREENBUFFER
-{
- HANDLE ConsoleHandle;
- DWORD DesiredAccess;
- BOOL InheritHandle;
- DWORD ShareMode;
- /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */
- DWORD ScreenBufferType;
- /*
- * This structure holds the initialization information
- * for graphics screen buffers.
- */
- CONSOLE_GRAPHICS_BUFFER_INFO GraphicsBufferInfo;
- HANDLE hMutex;
- PVOID lpBitMap;
- HANDLE OutputHandle; /* Handle to newly created screen buffer */
-} CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER;
-
-typedef struct _CONSOLE_SETACTIVESCREENBUFFER
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle; /* Handle to screen buffer to switch to */
-} CONSOLE_SETACTIVESCREENBUFFER, *PCONSOLE_SETACTIVESCREENBUFFER;
-
-typedef struct _CONSOLE_INVALIDATEDIBITS
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- SMALL_RECT Region;
-} CONSOLE_INVALIDATEDIBITS, *PCONSOLE_INVALIDATEDIBITS;
-
-typedef struct _CONSOLE_SETPALETTE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- HPALETTE PaletteHandle;
- UINT Usage;
-} CONSOLE_SETPALETTE, *PCONSOLE_SETPALETTE;
-
-typedef struct _CONSOLE_GETSETCONSOLETITLE
-{
- HANDLE ConsoleHandle;
- ULONG Length;
- PVOID Title;
- BOOLEAN Unicode;
-} CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
-
-typedef struct _CONSOLE_FLUSHINPUTBUFFER
-{
- HANDLE ConsoleHandle;
- HANDLE InputHandle;
-} CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
-
-typedef struct _CONSOLE_SCROLLSCREENBUFFER
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- SMALL_RECT ScrollRectangle;
- SMALL_RECT ClipRectangle;
- BOOL UseClipRectangle;
- COORD DestinationOrigin;
- CHAR_INFO Fill;
- BOOLEAN Unicode;
-} CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
-
-
-/*
- * An attribute or a character are instances of the same entity, namely
- * a "code" (what would be called an (ANSI) escape sequence). Therefore
- * encode them inside the same structure.
- */
-typedef enum _CODE_TYPE
-{
- CODE_ASCII = 0x01,
- CODE_UNICODE = 0x02,
- CODE_ATTRIBUTE = 0x03
-} CODE_TYPE;
-
-typedef union _CODE_ELEMENT
-{
- CHAR AsciiChar;
- WCHAR UnicodeChar;
- WORD Attribute;
-} CODE_ELEMENT;
-
-typedef struct _CONSOLE_OUTPUTCODE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD Coord;
-
- CODE_TYPE CodeType;
- CHAR CodeStaticBuffer[80]; // == 40 * sizeof(CODE_ELEMENT)
- PVOID pCode; // Either a pointer to a character or to an attribute.
- // union
- // {
- // PVOID pCode;
- // PCHAR AsciiChar;
- // PWCHAR UnicodeChar;
- // PWORD Attribute;
- // } pCode; // Either a pointer to a character or to an attribute.
-
- ULONG NumCodes;
-} CONSOLE_READOUTPUTCODE , *PCONSOLE_READOUTPUTCODE,
- CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
-
-typedef struct _CONSOLE_FILLOUTPUTCODE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD WriteCoord;
-
- CODE_TYPE CodeType;
- CODE_ELEMENT Code; // Either a character or an attribute.
-
- ULONG NumCodes;
-} CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
-
-typedef struct _CONSOLE_GETINPUT
-{
- HANDLE ConsoleHandle;
- HANDLE InputHandle;
- INPUT_RECORD RecordStaticBuffer[5];
- PINPUT_RECORD RecordBufPtr;
- ULONG NumRecords;
- WORD Flags;
- BOOLEAN Unicode;
-} CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
-
-typedef struct _CONSOLE_WRITEINPUT
-{
- HANDLE ConsoleHandle;
- HANDLE InputHandle;
- INPUT_RECORD RecordStaticBuffer[5];
- PINPUT_RECORD RecordBufPtr;
- ULONG NumRecords;
- BOOLEAN Unicode;
- BOOLEAN AppendToEnd;
-} CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
-
-typedef struct _CONSOLE_READOUTPUT
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
-
- CHAR_INFO StaticBuffer;
- PCHAR_INFO CharInfo;
-
- SMALL_RECT ReadRegion;
- BOOLEAN Unicode;
-} CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
-
-typedef struct _CONSOLE_WRITEOUTPUT
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
-
- CHAR_INFO StaticBuffer;
- PCHAR_INFO CharInfo;
-
- SMALL_RECT WriteRegion;
- BOOLEAN Unicode;
-
- /*
- * If we are going to write too large (>= 64 kB, size of the CSR heap)
- * data buffers, we allocate a heap buffer in the process' memory, and
- * CSR will read it via NtReadVirtualMemory.
- */
- BOOLEAN UseVirtualMemory;
-} CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
-
-typedef struct _CONSOLE_GETNUMINPUTEVENTS
-{
- HANDLE ConsoleHandle;
- HANDLE InputHandle;
- ULONG NumberOfEvents;
-} CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
-
-
-
-typedef struct _CONSOLE_CLOSEHANDLE
-{
- HANDLE ConsoleHandle;
- HANDLE Handle;
-} CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
-
-typedef struct _CONSOLE_VERIFYHANDLE
-{
- BOOL IsValid;
- HANDLE ConsoleHandle;
- HANDLE Handle;
-} CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
-
-typedef struct _CONSOLE_DUPLICATEHANDLE
-{
- HANDLE ConsoleHandle;
- HANDLE SourceHandle;
- DWORD DesiredAccess;
- BOOLEAN InheritHandle;
- DWORD Options;
- HANDLE TargetHandle;
-} CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
-
-typedef struct _CONSOLE_GETHANDLEINFO
-{
- HANDLE ConsoleHandle;
- HANDLE Handle;
- DWORD Flags;
-} CONSOLE_GETHANDLEINFO, *PCONSOLE_GETHANDLEINFO;
-
-typedef struct _CONSOLE_SETHANDLEINFO
-{
- HANDLE ConsoleHandle;
- HANDLE Handle;
- DWORD Mask;
- DWORD Flags;
-} CONSOLE_SETHANDLEINFO, *PCONSOLE_SETHANDLEINFO;
-
-/*
- * Type of handles.
- */
-typedef enum _CONSOLE_HANDLE_TYPE
-{
- HANDLE_INPUT = 0x01,
- HANDLE_OUTPUT = 0x02
-} CONSOLE_HANDLE_TYPE;
-
-typedef struct _CONSOLE_OPENCONSOLE
-{
- HANDLE ConsoleHandle;
- CONSOLE_HANDLE_TYPE HandleType;
- DWORD DesiredAccess;
- BOOL InheritHandle;
- DWORD ShareMode;
- HANDLE Handle;
-} CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
-
-
-
-typedef struct _CONSOLE_GETLARGESTWINDOWSIZE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD Size;
-} CONSOLE_GETLARGESTWINDOWSIZE, *PCONSOLE_GETLARGESTWINDOWSIZE;
-
-typedef struct _CONSOLE_MENUCONTROL
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- DWORD CmdIdLow;
- DWORD CmdIdHigh;
- HMENU MenuHandle;
-} CONSOLE_MENUCONTROL, *PCONSOLE_MENUCONTROL;
-
-typedef struct _CONSOLE_SETMENUCLOSE
-{
- HANDLE ConsoleHandle;
- BOOL Enable;
-} CONSOLE_SETMENUCLOSE, *PCONSOLE_SETMENUCLOSE;
-
-typedef struct _CONSOLE_SETWINDOWINFO
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- BOOL Absolute;
- SMALL_RECT WindowRect; // New console window position in the screen-buffer frame (Absolute == TRUE)
- // or in the old window position frame (Absolute == FALSE).
-} CONSOLE_SETWINDOWINFO, *PCONSOLE_SETWINDOWINFO;
-
-typedef struct _CONSOLE_GETWINDOW
-{
- HANDLE ConsoleHandle;
- HWND WindowHandle;
-} CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
-
-typedef struct _CONSOLE_SETICON
-{
- HANDLE ConsoleHandle;
- HICON IconHandle;
-} CONSOLE_SETICON, *PCONSOLE_SETICON;
-
-
-
-typedef struct _CONSOLE_ADDGETALIAS
-{
- HANDLE ConsoleHandle;
- USHORT SourceLength;
- USHORT TargetLength; // Also used for storing the number of bytes written.
- USHORT ExeLength;
- PVOID Source;
- PVOID Target;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
-
-typedef struct _CONSOLE_GETALLALIASES
-{
- HANDLE ConsoleHandle;
- USHORT ExeLength;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
- ULONG AliasesBufferLength;
- PVOID AliasesBuffer;
-} CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
-
-typedef struct _CONSOLE_GETALLALIASESLENGTH
-{
- HANDLE ConsoleHandle;
- USHORT ExeLength;
- PVOID ExeName;
- ULONG Length;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
-
-typedef struct _CONSOLE_GETALIASESEXES
-{
- HANDLE ConsoleHandle;
- ULONG Length ; // ExeLength; // ExesLength
- PVOID ExeNames;
- BOOLEAN Unicode;
-} CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
-
-typedef struct _CONSOLE_GETALIASESEXESLENGTH
-{
- HANDLE ConsoleHandle;
- ULONG Length;
- BOOLEAN Unicode;
-} CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
-
-
-
-typedef struct _CONSOLE_GETCOMMANDHISTORY
-{
- HANDLE ConsoleHandle;
- ULONG HistoryLength;
- PVOID History;
- USHORT ExeLength;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
-
-typedef struct _CONSOLE_GETCOMMANDHISTORYLENGTH
-{
- HANDLE ConsoleHandle;
- ULONG HistoryLength;
- USHORT ExeLength;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
-
-typedef struct _CONSOLE_EXPUNGECOMMANDHISTORY
-{
- HANDLE ConsoleHandle;
- USHORT ExeLength;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
-
-typedef struct _CONSOLE_GETSETHISTORYINFO
-{
- UINT HistoryBufferSize;
- UINT NumberOfHistoryBuffers;
- DWORD dwFlags;
-} CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
-
-typedef struct _CONSOLE_SETHISTORYNUMBERCOMMANDS
-{
- HANDLE ConsoleHandle;
- ULONG NumCommands;
- USHORT ExeLength;
- PVOID ExeName;
- BOOLEAN Unicode;
- BOOLEAN Unicode2;
-} CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
-
-typedef struct _CONSOLE_SETHISTORYMODE
-{
- HANDLE ConsoleHandle;
- ULONG Mode;
-} CONSOLE_SETHISTORYMODE, *PCONSOLE_SETHISTORYMODE;
-
-
-
-typedef struct _CONSOLE_SETSCREENBUFFERSIZE
-{
- HANDLE ConsoleHandle;
- HANDLE OutputHandle;
- COORD Size;
-} CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
-
-typedef struct _CONSOLE_GETSELECTIONINFO
-{
- HANDLE ConsoleHandle;
- CONSOLE_SELECTION_INFO Info;
-} CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
-
-typedef struct _CONSOLE_GETINPUTOUTPUTCP
-{
- HANDLE ConsoleHandle;
- UINT CodePage;
- BOOL OutputCP; // TRUE : Output Code Page ; FALSE : Input Code Page
-} CONSOLE_GETINPUTOUTPUTCP, *PCONSOLE_GETINPUTOUTPUTCP;
-
-typedef struct _CONSOLE_SETINPUTOUTPUTCP
-{
- HANDLE ConsoleHandle;
- UINT CodePage;
- BOOL OutputCP; // TRUE : Output Code Page ; FALSE : Input Code Page
- HANDLE EventHandle;
-} CONSOLE_SETINPUTOUTPUTCP, *PCONSOLE_SETINPUTOUTPUTCP;
-
-typedef struct _CONSOLE_GETKBDLAYOUTNAME
-{
- HANDLE ConsoleHandle;
- CHAR LayoutBuffer[KL_NAMELENGTH * sizeof(WCHAR)]; // Can hold up to 9 wchars
- BOOL Ansi;
-} CONSOLE_GETKBDLAYOUTNAME, *PCONSOLE_GETKBDLAYOUTNAME;
-
-typedef struct _CONSOLE_REGISTERVDM
-{
- HANDLE ConsoleHandle;
- ULONG RegisterFlags;
- HANDLE StartHardwareEvent;
- HANDLE EndHardwareEvent;
- HANDLE ErrorHardwareEvent;
-
- /* Unused member */
- ULONG UnusedVar;
-
- ULONG VideoStateLength;
- PVOID VideoState; // PVIDEO_HARDWARE_STATE_HEADER
-
- /* Unused members */
- PVOID UnusedBuffer;
- ULONG UnusedBufferLength;
-
- COORD VDMBufferSize;
- PVOID VDMBuffer;
-} CONSOLE_REGISTERVDM, *PCONSOLE_REGISTERVDM;
-
-typedef struct _CONSOLE_API_MESSAGE
-{
- PORT_MESSAGE Header;
-
- PCSR_CAPTURE_BUFFER CsrCaptureData;
- CSR_API_NUMBER ApiNumber;
- NTSTATUS Status;
- ULONG Reserved;
- union
- {
- /* Console initialization and uninitialization */
- CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
- CONSOLE_ATTACHCONSOLE AttachConsoleRequest;
- CONSOLE_FREECONSOLE FreeConsoleRequest;
-
- /* Processes */
- CONSOLE_GETPROCESSLIST GetProcessListRequest;
- CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
- CONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest;
-
- /* Handles */
- CONSOLE_OPENCONSOLE OpenConsoleRequest;
- CONSOLE_CLOSEHANDLE CloseHandleRequest;
- CONSOLE_VERIFYHANDLE VerifyHandleRequest;
- CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
- CONSOLE_GETHANDLEINFO GetHandleInfoRequest;
- CONSOLE_SETHANDLEINFO SetHandleInfoRequest;
-
- /* Cursor & Mouse */
- CONSOLE_SHOWCURSOR ShowCursorRequest;
- CONSOLE_SETCURSOR SetCursorRequest;
- CONSOLE_GETSETCURSORINFO CursorInfoRequest;
- CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
- CONSOLE_GETMOUSEINFO GetMouseInfoRequest;
-
- /* Screen-buffer */
- CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
- CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
- CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
- CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
- CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
-
- CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
- CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
-
- /* Console mode */
- CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
- CONSOLE_GETDISPLAYMODE GetDisplayModeRequest;
- CONSOLE_SETDISPLAYMODE SetDisplayModeRequest;
- CONSOLE_GETSETHWSTATE HardwareStateRequest;
-
- /* Console fonts */
- CONSOLE_GETNUMFONTS GetNumFontsRequest;
- CONSOLE_GETFONTINFO GetFontInfoRequest;
- CONSOLE_GETFONTSIZE GetFontSizeRequest;
- CONSOLE_GETCURRENTFONT GetCurrentFontRequest;
- CONSOLE_SETFONT SetFontRequest;
-
- /* Console window */
- CONSOLE_INVALIDATEDIBITS InvalidateDIBitsRequest;
- CONSOLE_SETPALETTE SetPaletteRequest;
- CONSOLE_GETSETCONSOLETITLE TitleRequest;
- CONSOLE_GETLARGESTWINDOWSIZE GetLargestWindowSizeRequest;
- CONSOLE_MENUCONTROL MenuControlRequest;
- CONSOLE_SETMENUCLOSE SetMenuCloseRequest;
- CONSOLE_SETWINDOWINFO SetWindowInfoRequest;
- CONSOLE_GETWINDOW GetWindowRequest;
- CONSOLE_SETICON SetIconRequest;
-
- /* Read */
- CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
- CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
- CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
- CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
- CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
-
- /* Write */
- CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
- CONSOLE_WRITEINPUT WriteInputRequest;
- CONSOLE_WRITEOUTPUT WriteOutputRequest;
- CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
-
- CONSOLE_FILLOUTPUTCODE FillOutputRequest;
- CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
-
- /* Aliases */
- CONSOLE_ADDGETALIAS ConsoleAliasRequest;
- CONSOLE_GETALLALIASES GetAllAliasesRequest;
- CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
- CONSOLE_GETALIASESEXES GetAliasesExesRequest;
- CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
-
- /* History */
- CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
- CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
- CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
- CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
- CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
- CONSOLE_SETHISTORYMODE SetHistoryModeRequest;
-
- /* Input and Output Code Pages; keyboard */
- CONSOLE_GETINPUTOUTPUTCP GetConsoleCPRequest;
- CONSOLE_SETINPUTOUTPUTCP SetConsoleCPRequest;
- CONSOLE_GETKBDLAYOUTNAME GetKbdLayoutNameRequest;
-
- /* Virtual DOS Machine */
- CONSOLE_REGISTERVDM RegisterVDMRequest;
- } Data;
-} CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
-
-// Check that a CONSOLE_API_MESSAGE can hold in a CSR_API_MESSAGE.
-CHECK_API_MSG_SIZE(CONSOLE_API_MESSAGE);
-
-#endif // _CONMSG_H
-
-/* EOF */