typedef struct
{
+ HANDLE ConsoleHandle;
HANDLE OutputHandle;
- BOOL Unicode;
- ULONG NrCharactersToWrite;
- ULONG NrCharactersWritten;
+ CHAR StaticBuffer[80];
+ PVOID Buffer; // BufPtr
+ ULONG NumBytes;
+
+ // On Windows, the client never uses this member
+ ULONG Reserved1;
- ULONG BufferSize;
- PVOID Buffer;
+ BOOLEAN UsingStaticBuffer;
+ BOOLEAN Unicode;
+
+ // On Windows, the client never uses this member
+ CHAR Reserved2[6];
} CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
typedef struct
{
+ HANDLE ConsoleHandle;
HANDLE InputHandle;
- BOOL Unicode;
- ULONG NrCharactersToRead;
- ULONG NrCharactersRead;
+ USHORT ExeLength;
- UNICODE_STRING ExeName;
- DWORD CtrlWakeupMask;
- DWORD ControlKeyState;
+ CHAR StaticBuffer[80];
+ PVOID Buffer; // BufPtr
+ ULONG NumBytes;
- ULONG BufferSize;
- PVOID Buffer;
+ ULONG CaptureBufferSize;
+
+ ULONG InitialNumBytes;
+ ULONG CtrlWakeupMask;
+ ULONG ControlKeyState;
+ BOOLEAN Unicode;
} CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
typedef struct
*/
} CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
+typedef struct
+{
+ HANDLE ConsoleHandle;
+ ULONG NumButtons;
+} CONSOLE_GETMOUSEINFO, *PCONSOLE_GETMOUSEINFO;
+
typedef struct
{
HANDLE ConsoleHandle;
DWORD DesiredAccess;
BOOL InheritHandle;
DWORD ShareMode;
- DWORD ScreenBufferType; /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */
+ /* Type of the screen buffer: CONSOLE_TEXTMODE_BUFFER or CONSOLE_GRAPHICS_BUFFER */
+ DWORD ScreenBufferType;
/*
* This structure holds the initialization information
* for graphics screen buffers.
BOOLEAN Unicode;
} CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
-typedef struct
-{
- HANDLE OutputHandle;
-
- BOOL Unicode;
- COORD BufferSize;
- COORD BufferCoord;
- SMALL_RECT WriteRegion;
- PCHAR_INFO CharInfo;
-} CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
-
typedef struct
{
HANDLE ConsoleHandle;
CODE_ATTRIBUTE = 0x03
} CODE_TYPE;
-typedef struct
+typedef union _CODE_ELEMENT
{
- HANDLE OutputHandle;
-
- DWORD NumCodesToRead;
- COORD ReadCoord;
- COORD EndCoord;
-
- DWORD CodesRead;
-
- CODE_TYPE CodeType;
- union
- {
- PVOID pCode;
- PCHAR AsciiChar;
- PWCHAR UnicodeChar;
- PWORD Attribute;
- } pCode; // Either a pointer to a character or to an attribute.
-} CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
+ CHAR AsciiChar;
+ WCHAR UnicodeChar;
+ WORD Attribute;
+} CODE_ELEMENT;
typedef struct
{
+ HANDLE ConsoleHandle;
HANDLE OutputHandle;
-
- ULONG BufferSize; // Seems unusued
- WORD Length;
- COORD Coord;
- COORD EndCoord;
-
- ULONG NrCharactersWritten; // Seems unusued
+ COORD Coord;
CODE_TYPE CodeType;
- union
- {
- PVOID pCode;
- PCHAR AsciiChar;
- PWCHAR UnicodeChar;
- PWORD Attribute;
- } pCode; // Either a pointer to a character or to an attribute.
-} CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
+ 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
{
+ HANDLE ConsoleHandle;
HANDLE OutputHandle;
+ COORD WriteCoord;
- CODE_TYPE CodeType;
- union
- {
- CHAR AsciiChar;
- WCHAR UnicodeChar;
- WORD Attribute;
- } Code; // Either a character or an attribute.
-
- COORD Coord;
- ULONG Length;
+ CODE_TYPE CodeType;
+ CODE_ELEMENT Code; // Either a character or an attribute.
- ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
+ ULONG NumCodes;
} CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
typedef struct
{
- HANDLE InputHandle;
- ULONG InputsRead;
- PINPUT_RECORD InputRecord;
- ULONG Length;
- WORD wFlags;
- BOOLEAN Unicode;
+ HANDLE ConsoleHandle;
+ HANDLE InputHandle;
+ INPUT_RECORD RecordStaticBuffer[5];
+ PINPUT_RECORD RecordBufPtr;
+ ULONG NumRecords;
+ WORD Flags;
+ BOOLEAN Unicode;
} CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
typedef struct
{
+ HANDLE ConsoleHandle;
+ HANDLE InputHandle;
+ INPUT_RECORD RecordStaticBuffer[5];
+ PINPUT_RECORD RecordBufPtr;
+ ULONG NumRecords;
+ BOOLEAN Unicode;
+ BOOLEAN AppendToEnd;
+} CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
+
+typedef struct
+{
+ HANDLE ConsoleHandle;
HANDLE OutputHandle;
- BOOL Unicode;
- COORD BufferSize;
- COORD BufferCoord;
- SMALL_RECT ReadRegion;
+ CHAR_INFO StaticBuffer;
PCHAR_INFO CharInfo;
+
+ SMALL_RECT ReadRegion;
+ BOOLEAN Unicode;
} CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
typedef struct
{
- HANDLE InputHandle;
- DWORD Length;
- INPUT_RECORD* InputRecord;
- BOOL Unicode;
- BOOL AppendToEnd;
-} CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
+ HANDLE ConsoleHandle;
+ HANDLE OutputHandle;
+
+ CHAR_INFO StaticBuffer;
+ PCHAR_INFO CharInfo;
+
+ SMALL_RECT WriteRegion;
+ BOOLEAN Unicode;
+
+ ULONG Unknown;
+} CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
typedef struct
{
HANDLE ConsoleHandle;
HANDLE InputHandle;
- DWORD NumberOfEvents;
+ ULONG NumberOfEvents;
} CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
typedef struct
{
- ULONG SourceLength;
- ULONG TargetLength; // Also used for storing the number of bytes written.
- ULONG ExeLength;
- LPWSTR Source;
- LPWSTR Target;
- LPWSTR Exe;
+ 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
{
- DWORD ExeLength;
- DWORD AliasesBufferLength;
- LPWSTR ExeName;
- LPWSTR AliasesBuffer;
+ HANDLE ConsoleHandle;
+ USHORT ExeLength;
+ PVOID ExeName;
+ BOOLEAN Unicode;
+ BOOLEAN Unicode2;
+ ULONG AliasesBufferLength;
+ PVOID AliasesBuffer;
} CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
typedef struct
HANDLE ConsoleHandle;
ULONG HistoryLength;
PVOID History;
- // UNICODE_STRING ExeName;
USHORT ExeLength;
PVOID ExeName;
BOOLEAN Unicode;
{
HANDLE ConsoleHandle;
ULONG HistoryLength;
- // UNICODE_STRING ExeName;
USHORT ExeLength;
PVOID ExeName;
BOOLEAN Unicode;
typedef struct
{
HANDLE ConsoleHandle;
- // UNICODE_STRING ExeName;
USHORT ExeLength;
PVOID ExeName;
BOOLEAN Unicode;
{
HANDLE ConsoleHandle;
ULONG NumCommands;
- // UNICODE_STRING ExeName;
USHORT ExeLength;
PVOID ExeName;
BOOLEAN Unicode;
CONSOLE_GETHANDLEINFO GetHandleInfoRequest;
CONSOLE_SETHANDLEINFO SetHandleInfoRequest;
- /* Cursor */
+ /* Cursor & Mouse */
CONSOLE_SHOWCURSOR ShowCursorRequest;
CONSOLE_SETCURSOR SetCursorRequest;
CONSOLE_GETSETCURSORINFO CursorInfoRequest;
CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
+ CONSOLE_GETMOUSEINFO GetMouseInfoRequest;
/* Screen-buffer */
CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;