[KERNEL32/CONSRV]
[reactos.git] / include / reactos / subsys / win / conmsg.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Client/Server Runtime SubSystem
4 * FILE: include/reactos/subsys/win/conmsg.h
5 * PURPOSE: Public definitions for communication
6 * between Console API Clients and Servers
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
8 */
9
10 #ifndef _CONMSG_H
11 #define _CONMSG_H
12
13 #pragma once
14
15 #define CONSRV_SERVERDLL_INDEX 2
16 #define CONSRV_FIRST_API_NUMBER 512
17
18 // Windows 2k3 tables, adapted from http://j00ru.vexillium.org/csrss_list/api_list.html#Windows_2k3
19 // plus a little bit of Windows 7. It is for testing purposes. After that I will add stubs.
20 // Some names are also deduced from the subsystems/win32/csrss/csrsrv/server.c ones.
21 typedef enum _CONSRV_API_NUMBER
22 {
23 ConsolepOpenConsole = CONSRV_FIRST_API_NUMBER,
24 ConsolepGetConsoleInput,
25 ConsolepWriteConsoleInput,
26 ConsolepReadConsoleOutput,
27 ConsolepWriteConsoleOutput,
28 ConsolepReadConsoleOutputString,
29 // ConsolepWriteConsoleOutputString,
30 // ConsolepFillConsoleOutput,
31 ConsolepGetMode,
32 // ConsolepGetNumberOfFonts,
33 ConsolepGetNumberOfInputEvents,
34 ConsolepGetScreenBufferInfo,
35 ConsolepGetCursorInfo,
36 // ConsolepGetMouseInfo,
37 // ConsolepGetFontInfo,
38 // ConsolepGetFontSize,
39 // ConsolepGetCurrentFont,
40 ConsolepSetMode,
41 ConsolepSetActiveScreenBuffer,
42 ConsolepFlushInputBuffer,
43 // ConsolepGetLargestWindowSize,
44 ConsolepSetScreenBufferSize,
45 // ConsolepSetCursorPosition,
46 ConsolepSetCursorInfo,
47 // ConsolepSetWindowInfo,
48 ConsolepScrollScreenBuffer,
49 // ConsolepSetTextAttribute,
50 // ConsolepSetFont,
51 ConsolepSetIcon,
52 ConsolepReadConsole,
53 ConsolepWriteConsole,
54 ConsolepDuplicateHandle,
55 /**/ ConsolepGetHandleInformation /**/,
56 // ConsolepSetHandleInformation,
57 ConsolepCloseHandle,
58 ConsolepVerifyIoHandle,
59 ConsolepAlloc,
60 ConsolepFree,
61 ConsolepGetTitle,
62 ConsolepSetTitle,
63 ConsolepCreateScreenBuffer,
64 // ConsolepInvalidateBitMapRect,
65 // ConsolepVDMOperation,
66 ConsolepSetCursor,
67 // ConsolepShowCursor,
68 // ConsolepMenuControl,
69 // ConsolepSetPalette,
70 // ConsolepSetDisplayMode,
71 // ConsolepRegisterVDM,
72 ConsolepGetHardwareState,
73 ConsolepSetHardwareState,
74 // ConsolepGetDisplayMode,
75 ConsolepAddAlias,
76 ConsolepGetAlias,
77 ConsolepGetAliasesLength,
78 ConsolepGetAliasExesLength,
79 ConsolepGetAliases,
80 ConsolepGetAliasExes,
81 ConsolepExpungeCommandHistory,
82 ConsolepSetNumberOfCommands,
83 ConsolepGetCommandHistoryLength,
84 ConsolepGetCommandHistory,
85 // ConsolepSetCommandHistoryMode,
86 ConsolepGetCP,
87 ConsolepSetCP,
88 // ConsolepSetKeyShortcuts,
89 // ConsolepSetMenuClose,
90 // ConsolepNotifyLastClose,
91 ConsolepGenerateCtrlEvent,
92 // ConsolepGetKeyboardLayoutName,
93 ConsolepGetConsoleWindow,
94 // ConsolepCharType,
95 // ConsolepSetLocalEUDC,
96 // ConsolepSetCursorMode,
97 // ConsolepGetCursorMode,
98 // ConsolepRegisterOS2,
99 // ConsolepSetOS2OemFormat,
100 // ConsolepGetNlsMode,
101 // ConsolepSetNlsMode,
102 // ConsolepRegisterConsoleIME,
103 // ConsolepUnregisterConsoleIME,
104 // ConsolepGetLangId,
105 // ConsolepAttach,
106 ConsolepGetSelectionInfo,
107 ConsolepGetProcessList,
108 ConsolepGetHistory,
109 ConsolepSetHistory,
110
111 ConsolepMaxApiNumber
112 } CONSRV_API_NUMBER, *PCONSRV_API_NUMBER;
113
114
115 #define CSR_API_MESSAGE_HEADER_SIZE(Type) (FIELD_OFFSET(CSR_API_MESSAGE, Data) + sizeof(Type))
116 #define CSRSS_MAX_WRITE_CONSOLE (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE))
117 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_CHAR))
118 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB))
119 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_CHAR))
120 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB (LPC_MAX_DATA_LENGTH - CSR_API_MESSAGE_HEADER_SIZE(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB))
121
122 #define CONSOLE_INPUT_MODE_VALID (0x0f)
123 #define CONSOLE_OUTPUT_MODE_VALID (0x03)
124
125
126 typedef struct
127 {
128 USHORT nMaxIds;
129 PDWORD ProcessId;
130 ULONG nProcessIdsTotal;
131 } CSRSS_GET_PROCESS_LIST, *PCSRSS_GET_PROCESS_LIST;
132
133 typedef struct
134 {
135 HANDLE ConsoleHandle;
136 BOOL Unicode;
137 ULONG NrCharactersToWrite;
138 ULONG NrCharactersWritten;
139 HANDLE UnpauseEvent;
140 BYTE Buffer[0];
141 } CSRSS_WRITE_CONSOLE, *PCSRSS_WRITE_CONSOLE;
142
143 typedef struct
144 {
145 HANDLE ConsoleHandle;
146 BOOL Unicode;
147 WORD NrCharactersToRead;
148 WORD NrCharactersRead;
149 HANDLE EventHandle;
150
151 PVOID Buffer;
152 ULONG BufferSize;
153
154 UNICODE_STRING ExeName;
155 DWORD CtrlWakeupMask;
156 DWORD ControlKeyState;
157 } CSRSS_READ_CONSOLE, *PCSRSS_READ_CONSOLE;
158
159 typedef struct
160 {
161 LPTHREAD_START_ROUTINE CtrlDispatcher;
162 BOOL ConsoleNeeded;
163 INT ShowCmd;
164 HANDLE Console;
165 HANDLE InputHandle;
166 HANDLE OutputHandle;
167 } CSRSS_ALLOC_CONSOLE, *PCSRSS_ALLOC_CONSOLE;
168
169 typedef struct
170 {
171 ULONG Dummy;
172 } CSRSS_FREE_CONSOLE, *PCSRSS_FREE_CONSOLE;
173
174 typedef struct
175 {
176 HANDLE ConsoleHandle;
177 CONSOLE_SCREEN_BUFFER_INFO Info;
178 } CSRSS_SCREEN_BUFFER_INFO, *PCSRSS_SCREEN_BUFFER_INFO;
179
180 typedef struct
181 {
182 HANDLE ConsoleHandle;
183 COORD Position;
184 } CSRSS_SET_CURSOR, *PCSRSS_SET_CURSOR;
185
186 typedef struct
187 {
188 HANDLE ConsoleHandle;
189 BOOL Unicode;
190 union
191 {
192 CHAR AsciiChar;
193 WCHAR UnicodeChar;
194 } Char;
195 COORD Position;
196 WORD Length;
197 ULONG NrCharactersWritten;
198 } CSRSS_FILL_OUTPUT, *PCSRSS_FILL_OUTPUT;
199
200 typedef struct
201 {
202 HANDLE ConsoleHandle;
203 CHAR Attribute;
204 COORD Coord;
205 WORD Length;
206 } CSRSS_FILL_OUTPUT_ATTRIB, *PCSRSS_FILL_OUTPUT_ATTRIB;
207
208 typedef struct
209 {
210 HANDLE ConsoleHandle;
211 BOOL Unicode;
212 WORD Length;
213 COORD Coord;
214 COORD EndCoord;
215 ULONG NrCharactersWritten;
216 CHAR String[0];
217 } CSRSS_WRITE_CONSOLE_OUTPUT_CHAR, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR;
218
219 typedef struct
220 {
221 HANDLE ConsoleHandle;
222 WORD Length;
223 COORD Coord;
224 COORD EndCoord;
225 WORD Attribute[0];
226 } CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB;
227
228 typedef struct
229 {
230 HANDLE ConsoleHandle;
231 CONSOLE_CURSOR_INFO Info;
232 } CSRSS_GET_CURSOR_INFO, *PCSRSS_GET_CURSOR_INFO;
233
234 typedef struct
235 {
236 HANDLE ConsoleHandle;
237 CONSOLE_CURSOR_INFO Info;
238 } CSRSS_SET_CURSOR_INFO, *PCSRSS_SET_CURSOR_INFO;
239
240 typedef struct
241 {
242 HANDLE ConsoleHandle;
243 WORD Attrib;
244 } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
245
246 typedef struct
247 {
248 HANDLE ConsoleHandle;
249 DWORD Mode;
250 } CSRSS_SET_CONSOLE_MODE, *PCSRSS_SET_CONSOLE_MODE;
251
252 typedef struct
253 {
254 HANDLE ConsoleHandle;
255 DWORD ConsoleMode;
256 } CSRSS_GET_CONSOLE_MODE, *PCSRSS_GET_CONSOLE_MODE;
257
258 typedef struct
259 {
260 DWORD Access;
261 DWORD ShareMode;
262 BOOL Inheritable;
263 HANDLE OutputHandle; /* handle to newly created screen buffer */
264 } CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
265
266 typedef struct
267 {
268 HANDLE OutputHandle; /* handle to screen buffer to switch to */
269 } CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
270
271 typedef struct
272 {
273 DWORD Length;
274 PWCHAR Title;
275 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
276
277 typedef struct
278 {
279 DWORD Length;
280 PWCHAR Title;
281 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
282
283 typedef struct
284 {
285 HANDLE ConsoleHandle;
286 BOOL Unicode;
287 COORD BufferSize;
288 COORD BufferCoord;
289 SMALL_RECT WriteRegion;
290 CHAR_INFO* CharInfo;
291 } CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
292
293 typedef struct
294 {
295 HANDLE ConsoleInput;
296 } CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
297
298 typedef struct
299 {
300 HANDLE ConsoleHandle;
301 BOOL Unicode;
302 SMALL_RECT ScrollRectangle;
303 BOOL UseClipRectangle;
304 SMALL_RECT ClipRectangle;
305 COORD DestinationOrigin;
306 CHAR_INFO Fill;
307 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
308
309
310 /*
311 * An attribute or a character are instances of the same entity, namely
312 * a "code" (what would be called an (ANSI) escape sequence). Therefore
313 * encode them inside the same structure.
314 */
315 typedef enum _CODE_TYPE
316 {
317 CODE_ASCII = 0x01,
318 CODE_UNICODE = 0x02,
319 CODE_ATTRIBUTE = 0x03
320 } CODE_TYPE;
321
322 typedef struct
323 {
324 HANDLE ConsoleHandle;
325 CODE_TYPE CodeType;
326
327 DWORD NumCodesToRead;
328 COORD ReadCoord;
329 COORD EndCoord;
330
331 DWORD CodesRead;
332
333 union
334 {
335 PVOID pCode;
336 PCHAR AsciiChar;
337 PWCHAR UnicodeChar;
338 PWORD Attribute;
339 } pCode; // Either a pointer to a character or to an attribute.
340 } CSRSS_READ_CONSOLE_OUTPUT_CODE, *PCSRSS_READ_CONSOLE_OUTPUT_CODE;
341
342
343 typedef struct
344 {
345 HANDLE ConsoleHandle;
346 BOOL Unicode;
347 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
348
349 DWORD Length;
350 INPUT_RECORD* InputRecord;
351
352 /** For Read **/
353 ULONG InputsRead;
354 // INPUT_RECORD Input;
355 BOOL MoreEvents;
356 HANDLE Event;
357 } CSRSS_GET_CONSOLE_INPUT, *PCSRSS_GET_CONSOLE_INPUT;
358
359 typedef struct
360 {
361 HANDLE ConsoleHandle;
362 BOOL Unicode;
363 COORD BufferSize;
364 COORD BufferCoord;
365 SMALL_RECT ReadRegion;
366 CHAR_INFO* CharInfo;
367 } CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
368
369 typedef struct
370 {
371 HANDLE ConsoleHandle;
372 BOOL Unicode;
373 DWORD Length;
374 INPUT_RECORD* InputRecord;
375 } CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
376
377 typedef struct
378 {
379 HANDLE Handle;
380 } CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
381
382 typedef struct
383 {
384 HANDLE Handle;
385 } CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
386
387 typedef struct
388 {
389 HANDLE Handle;
390 DWORD Access;
391 BOOL Inheritable;
392 DWORD Options;
393 } CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
394
395 /*
396 * Type of handles.
397 */
398 typedef enum _HANDLE_TYPE
399 {
400 HANDLE_INPUT = 0x01,
401 HANDLE_OUTPUT = 0x02
402 } HANDLE_TYPE;
403
404 typedef struct
405 {
406 HANDLE Handle;
407 HANDLE_TYPE HandleType;
408 DWORD Access;
409 BOOL Inheritable;
410 DWORD ShareMode;
411 } CSRSS_OPEN_CONSOLE, *PCSRSS_OPEN_CONSOLE;
412
413 typedef struct
414 {
415 HANDLE InputWaitHandle;
416 } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
417
418 #define CONSOLE_HARDWARE_STATE_GET 0
419 #define CONSOLE_HARDWARE_STATE_SET 1
420
421 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
422 #define CONSOLE_HARDWARE_STATE_DIRECT 1
423
424 typedef struct
425 {
426 HANDLE ConsoleHandle;
427 DWORD SetGet; /* 0=get; 1=set */
428 DWORD State;
429 } CSRSS_SETGET_CONSOLE_HW_STATE, *PCSRSS_SETGET_CONSOLE_HW_STATE;
430
431 typedef struct
432 {
433 HWND WindowHandle;
434 } CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
435
436 typedef struct
437 {
438 HICON WindowIcon;
439 } CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
440
441
442
443
444
445
446
447
448
449 typedef struct
450 {
451 ULONG SourceLength;
452 ULONG TargetLength; // Also used for storing the number of bytes written.
453 ULONG ExeLength;
454 LPWSTR Source;
455 LPWSTR Target;
456 LPWSTR Exe;
457 } CSRSS_CONSOLE_ALIAS, *PCSRSS_CONSOLE_ALIAS;
458
459 typedef struct
460 {
461 DWORD ExeLength;
462 DWORD AliasesBufferLength;
463 LPWSTR ExeName;
464 LPWSTR AliasesBuffer;
465 } CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIASES;
466
467 typedef struct
468 {
469 DWORD Length;
470 DWORD ExeLength;
471 LPWSTR ExeName;
472 } CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH, *PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH;
473
474 typedef struct
475 {
476 DWORD Length;
477 LPWSTR ExeNames;
478 } CSRSS_GET_CONSOLE_ALIASES_EXES, *PCSRSS_GET_CONSOLE_ALIASES_EXES;
479
480 typedef struct
481 {
482 DWORD Length;
483 } CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
484
485
486
487
488
489
490 typedef struct
491 {
492 UNICODE_STRING ExeName;
493 PWCHAR History;
494 DWORD Length;
495 } CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
496
497 typedef struct
498 {
499 UNICODE_STRING ExeName;
500 DWORD Length;
501 } CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
502
503 typedef struct
504 {
505 UNICODE_STRING ExeName;
506 } CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
507
508 typedef struct
509 {
510 UNICODE_STRING ExeName;
511 DWORD NumCommands;
512 } CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
513
514 typedef struct
515 {
516 UINT HistoryBufferSize;
517 UINT NumberOfHistoryBuffers;
518 DWORD dwFlags;
519 } CSRSS_HISTORY_INFO, *PCSRSS_HISTORY_INFO;
520
521
522
523
524
525
526
527
528
529
530 typedef struct
531 {
532 DWORD Event;
533 DWORD ProcessGroup;
534 } CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
535
536 typedef struct
537 {
538 HANDLE ConsoleHandle;
539 DWORD NumInputEvents;
540 } CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
541
542 typedef struct
543 {
544 HANDLE OutputHandle;
545 COORD Size;
546 } CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
547
548 typedef struct
549 {
550 CONSOLE_SELECTION_INFO Info;
551 } CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
552
553 typedef struct
554 {
555 UINT CodePage;
556 } CSRSS_GET_CONSOLE_CP, *PCSRSS_GET_CONSOLE_CP;
557
558 typedef struct
559 {
560 UINT CodePage;
561 } CSRSS_SET_CONSOLE_CP, *PCSRSS_SET_CONSOLE_CP;
562
563 typedef struct
564 {
565 UINT CodePage;
566 } CSRSS_GET_CONSOLE_OUTPUT_CP, *PCSRSS_GET_CONSOLE_OUTPUT_CP;
567
568 typedef struct
569 {
570 UINT CodePage;
571 } CSRSS_SET_CONSOLE_OUTPUT_CP, *PCSRSS_SET_CONSOLE_OUTPUT_CP;
572
573 typedef struct _CONSOLE_API_MESSAGE
574 {
575 PORT_MESSAGE Header;
576
577 PCSR_CAPTURE_BUFFER CsrCaptureData;
578 CSR_API_NUMBER ApiNumber;
579 ULONG Status; // ReturnValue; // NTSTATUS Status
580 ULONG Reserved;
581 union
582 {
583 CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
584 CSRSS_FREE_CONSOLE FreeConsoleRequest;
585
586 /* Handles */
587 CSRSS_OPEN_CONSOLE OpenConsoleRequest;
588 CSRSS_CLOSE_HANDLE CloseHandleRequest;
589 CSRSS_VERIFY_HANDLE VerifyHandleRequest;
590 CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
591 CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
592
593 /* Cursor */
594 CSRSS_SET_CURSOR SetCursorRequest;
595 CSRSS_GET_CURSOR_INFO GetCursorInfoRequest;
596 CSRSS_SET_CURSOR_INFO SetCursorInfoRequest;
597
598 CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
599
600 /* Screen buffer */
601 CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
602 CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
603 CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
604 CSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize;
605 CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
606
607 CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo;
608
609 /* Console mode */
610 CSRSS_SET_CONSOLE_MODE SetConsoleModeRequest;
611 CSRSS_GET_CONSOLE_MODE GetConsoleModeRequest;
612 CSRSS_SETGET_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
613
614 /* Console window */
615 CSRSS_SET_TITLE SetTitleRequest;
616 CSRSS_GET_TITLE GetTitleRequest;
617 CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
618 CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
619
620 /* Read */
621 CSRSS_READ_CONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
622 CSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
623 CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
624 CSRSS_READ_CONSOLE_OUTPUT_CODE ReadConsoleOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
625
626 /* Write */
627 CSRSS_WRITE_CONSOLE WriteConsoleRequest;
628 CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
629 CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
630 CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
631 CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
632
633 CSRSS_FILL_OUTPUT FillOutputRequest;
634 CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
635 CSRSS_SET_ATTRIB SetAttribRequest;
636
637 /* Aliases */
638 CSRSS_CONSOLE_ALIAS ConsoleAlias;
639 CSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAliases;
640 CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength;
641 CSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes;
642 CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength;
643
644 /* History */
645 CSRSS_GET_COMMAND_HISTORY GetCommandHistory;
646 CSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength;
647 CSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory;
648 CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands;
649 CSRSS_HISTORY_INFO HistoryInfoRequest;
650
651 CSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent;
652 CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
653
654 /* CodePage */
655 CSRSS_GET_CONSOLE_CP GetConsoleCodePage;
656 CSRSS_SET_CONSOLE_CP SetConsoleCodePage;
657 CSRSS_GET_CONSOLE_OUTPUT_CP GetConsoleOutputCodePage;
658 CSRSS_SET_CONSOLE_OUTPUT_CP SetConsoleOutputCodePage;
659
660 CSRSS_GET_PROCESS_LIST GetProcessListRequest;
661 } Data;
662 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
663
664 #endif // _CONMSG_H
665
666 /* EOF */