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;
+
+ BOOLEAN UsingStaticBuffer;
+ BOOLEAN Unicode;
- ULONG BufferSize;
- PVOID Buffer;
+ // 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;
+
+ CHAR StaticBuffer[80];
+ PVOID Buffer; // BufPtr
+ ULONG NumBytes;
- UNICODE_STRING ExeName;
- DWORD CtrlWakeupMask;
- DWORD ControlKeyState;
+ ULONG CaptureBufferSize;
- ULONG BufferSize;
- PVOID Buffer;
+ ULONG InitialNumBytes;
+ ULONG CtrlWakeupMask;
+ ULONG ControlKeyState;
+ BOOLEAN Unicode;
} CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
typedef struct
typedef struct
{
HANDLE ConsoleHandle;
- DWORD Length;
+ ULONG Length;
PVOID Title;
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;