f45b07a5f2950dd3b1d727ff1ddf52d188888400
[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_POSITION, *PCSRSS_SET_CURSOR_POSITION;
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_CURSOR_INFO, *PCSRSS_CURSOR_INFO;
233
234 typedef struct
235 {
236 HANDLE ConsoleHandle;
237 WORD Attrib;
238 } CSRSS_SET_ATTRIB, *PCSRSS_SET_ATTRIB;
239
240 typedef struct
241 {
242 HANDLE ConsoleHandle;
243 DWORD ConsoleMode;
244 } CSRSS_CONSOLE_MODE, *PCSRSS_CONSOLE_MODE;
245
246 typedef struct
247 {
248 DWORD Access;
249 DWORD ShareMode;
250 BOOL Inheritable;
251 HANDLE OutputHandle; /* handle to newly created screen buffer */
252 } CSRSS_CREATE_SCREEN_BUFFER, *PCSRSS_CREATE_SCREEN_BUFFER;
253
254 typedef struct
255 {
256 HANDLE OutputHandle; /* handle to screen buffer to switch to */
257 } CSRSS_SET_SCREEN_BUFFER, *PCSRSS_SET_SCREEN_BUFFER;
258
259 typedef struct
260 {
261 DWORD Length;
262 PWCHAR Title;
263 } CSRSS_SET_TITLE, *PCSRSS_SET_TITLE;
264
265 typedef struct
266 {
267 DWORD Length;
268 PWCHAR Title;
269 } CSRSS_GET_TITLE, *PCSRSS_GET_TITLE;
270
271 typedef struct
272 {
273 HANDLE ConsoleHandle;
274 BOOL Unicode;
275 COORD BufferSize;
276 COORD BufferCoord;
277 SMALL_RECT WriteRegion;
278 CHAR_INFO* CharInfo;
279 } CSRSS_WRITE_CONSOLE_OUTPUT, *PCSRSS_WRITE_CONSOLE_OUTPUT;
280
281 typedef struct
282 {
283 HANDLE ConsoleInput;
284 } CSRSS_FLUSH_INPUT_BUFFER, *PCSRSS_FLUSH_INPUT_BUFFER;
285
286 typedef struct
287 {
288 HANDLE ConsoleHandle;
289 BOOL Unicode;
290 SMALL_RECT ScrollRectangle;
291 BOOL UseClipRectangle;
292 SMALL_RECT ClipRectangle;
293 COORD DestinationOrigin;
294 CHAR_INFO Fill;
295 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER;
296
297
298 /*
299 * An attribute or a character are instances of the same entity, namely
300 * a "code" (what would be called an (ANSI) escape sequence). Therefore
301 * encode them inside the same structure.
302 */
303 typedef enum _CODE_TYPE
304 {
305 CODE_ASCII = 0x01,
306 CODE_UNICODE = 0x02,
307 CODE_ATTRIBUTE = 0x03
308 } CODE_TYPE;
309
310 typedef struct
311 {
312 HANDLE ConsoleHandle;
313 CODE_TYPE CodeType;
314
315 DWORD NumCodesToRead;
316 COORD ReadCoord;
317 COORD EndCoord;
318
319 DWORD CodesRead;
320
321 union
322 {
323 PVOID pCode;
324 PCHAR AsciiChar;
325 PWCHAR UnicodeChar;
326 PWORD Attribute;
327 } pCode; // Either a pointer to a character or to an attribute.
328 } CSRSS_READ_CONSOLE_OUTPUT_CODE, *PCSRSS_READ_CONSOLE_OUTPUT_CODE;
329
330
331 typedef struct
332 {
333 HANDLE ConsoleHandle;
334 BOOL Unicode;
335 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
336
337 DWORD Length;
338 INPUT_RECORD* InputRecord;
339
340 /** For Read **/
341 ULONG InputsRead;
342 // INPUT_RECORD Input;
343 BOOL MoreEvents;
344 HANDLE Event;
345 } CSRSS_GET_CONSOLE_INPUT, *PCSRSS_GET_CONSOLE_INPUT;
346
347 typedef struct
348 {
349 HANDLE ConsoleHandle;
350 BOOL Unicode;
351 COORD BufferSize;
352 COORD BufferCoord;
353 SMALL_RECT ReadRegion;
354 CHAR_INFO* CharInfo;
355 } CSRSS_READ_CONSOLE_OUTPUT, *PCSRSS_READ_CONSOLE_OUTPUT;
356
357 typedef struct
358 {
359 HANDLE ConsoleHandle;
360 BOOL Unicode;
361 DWORD Length;
362 INPUT_RECORD* InputRecord;
363 } CSRSS_WRITE_CONSOLE_INPUT, *PCSRSS_WRITE_CONSOLE_INPUT;
364
365 typedef struct
366 {
367 HANDLE Handle;
368 } CSRSS_CLOSE_HANDLE, *PCSRSS_CLOSE_HANDLE;
369
370 typedef struct
371 {
372 HANDLE Handle;
373 } CSRSS_VERIFY_HANDLE, *PCSRSS_VERIFY_HANDLE;
374
375 typedef struct
376 {
377 HANDLE Handle;
378 DWORD Access;
379 BOOL Inheritable;
380 DWORD Options;
381 } CSRSS_DUPLICATE_HANDLE, *PCSRSS_DUPLICATE_HANDLE;
382
383 /*
384 * Type of handles.
385 */
386 typedef enum _HANDLE_TYPE
387 {
388 HANDLE_INPUT = 0x01,
389 HANDLE_OUTPUT = 0x02
390 } HANDLE_TYPE;
391
392 typedef struct
393 {
394 HANDLE Handle;
395 HANDLE_TYPE HandleType;
396 DWORD Access;
397 BOOL Inheritable;
398 DWORD ShareMode;
399 } CSRSS_OPEN_CONSOLE, *PCSRSS_OPEN_CONSOLE;
400
401 typedef struct
402 {
403 HANDLE InputWaitHandle;
404 } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
405
406
407 /*
408 * Console hardware states.
409 */
410 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
411 #define CONSOLE_HARDWARE_STATE_DIRECT 1
412
413 typedef struct
414 {
415 HANDLE ConsoleHandle;
416 DWORD State;
417 } CSRSS_CONSOLE_HW_STATE, *PCSRSS_CONSOLE_HW_STATE;
418
419 typedef struct
420 {
421 HWND WindowHandle;
422 } CSRSS_GET_CONSOLE_WINDOW, *PCSRSS_GET_CONSOLE_WINDOW;
423
424 typedef struct
425 {
426 HICON WindowIcon;
427 } CSRSS_SET_CONSOLE_ICON, *PCSRSS_SET_CONSOLE_ICON;
428
429
430
431
432
433
434
435
436
437 typedef struct
438 {
439 ULONG SourceLength;
440 ULONG TargetLength; // Also used for storing the number of bytes written.
441 ULONG ExeLength;
442 LPWSTR Source;
443 LPWSTR Target;
444 LPWSTR Exe;
445 } CSRSS_CONSOLE_ALIAS, *PCSRSS_CONSOLE_ALIAS;
446
447 typedef struct
448 {
449 DWORD ExeLength;
450 DWORD AliasesBufferLength;
451 LPWSTR ExeName;
452 LPWSTR AliasesBuffer;
453 } CSRSS_GET_ALL_CONSOLE_ALIASES, *PCSRSS_GET_ALL_CONSOLE_ALIASES;
454
455 typedef struct
456 {
457 DWORD Length;
458 DWORD ExeLength;
459 LPWSTR ExeName;
460 } CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH, *PCSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH;
461
462 typedef struct
463 {
464 DWORD Length;
465 LPWSTR ExeNames;
466 } CSRSS_GET_CONSOLE_ALIASES_EXES, *PCSRSS_GET_CONSOLE_ALIASES_EXES;
467
468 typedef struct
469 {
470 DWORD Length;
471 } CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH, *PCSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH;
472
473
474
475
476
477
478 typedef struct
479 {
480 UNICODE_STRING ExeName;
481 PWCHAR History;
482 DWORD Length;
483 } CSRSS_GET_COMMAND_HISTORY, *PCSRSS_GET_COMMAND_HISTORY;
484
485 typedef struct
486 {
487 UNICODE_STRING ExeName;
488 DWORD Length;
489 } CSRSS_GET_COMMAND_HISTORY_LENGTH, *PCSRSS_GET_COMMAND_HISTORY_LENGTH;
490
491 typedef struct
492 {
493 UNICODE_STRING ExeName;
494 } CSRSS_EXPUNGE_COMMAND_HISTORY, *PCSRSS_EXPUNGE_COMMAND_HISTORY;
495
496 typedef struct
497 {
498 UNICODE_STRING ExeName;
499 DWORD NumCommands;
500 } CSRSS_SET_HISTORY_NUMBER_COMMANDS, *PCSRSS_SET_HISTORY_NUMBER_COMMANDS;
501
502 typedef struct
503 {
504 UINT HistoryBufferSize;
505 UINT NumberOfHistoryBuffers;
506 DWORD dwFlags;
507 } CSRSS_HISTORY_INFO, *PCSRSS_HISTORY_INFO;
508
509
510
511
512
513
514
515
516
517
518 typedef struct
519 {
520 DWORD Event;
521 DWORD ProcessGroup;
522 } CSRSS_GENERATE_CTRL_EVENT, *PCSRSS_GENERATE_CTRL_EVENT;
523
524 typedef struct
525 {
526 HANDLE ConsoleHandle;
527 DWORD NumInputEvents;
528 } CSRSS_GET_NUM_INPUT_EVENTS, *PCSRSS_GET_NUM_INPUT_EVENTS;
529
530 typedef struct
531 {
532 HANDLE OutputHandle;
533 COORD Size;
534 } CSRSS_SET_SCREEN_BUFFER_SIZE, *PCSRSS_SET_SCREEN_BUFFER_SIZE;
535
536 typedef struct
537 {
538 CONSOLE_SELECTION_INFO Info;
539 } CSRSS_GET_CONSOLE_SELECTION_INFO, *PCSRSS_GET_CONSOLE_SELECTION_INFO;
540
541 typedef struct
542 {
543 UINT CodePage;
544 } CSRSS_GET_CONSOLE_CP, *PCSRSS_GET_CONSOLE_CP;
545
546 typedef struct
547 {
548 UINT CodePage;
549 } CSRSS_SET_CONSOLE_CP, *PCSRSS_SET_CONSOLE_CP;
550
551 typedef struct
552 {
553 UINT CodePage;
554 } CSRSS_GET_CONSOLE_OUTPUT_CP, *PCSRSS_GET_CONSOLE_OUTPUT_CP;
555
556 typedef struct
557 {
558 UINT CodePage;
559 } CSRSS_SET_CONSOLE_OUTPUT_CP, *PCSRSS_SET_CONSOLE_OUTPUT_CP;
560
561 typedef struct _CONSOLE_API_MESSAGE
562 {
563 PORT_MESSAGE Header;
564
565 PCSR_CAPTURE_BUFFER CsrCaptureData;
566 CSR_API_NUMBER ApiNumber;
567 ULONG Status; // ReturnValue; // NTSTATUS Status
568 ULONG Reserved;
569 union
570 {
571 CSRSS_ALLOC_CONSOLE AllocConsoleRequest;
572 CSRSS_FREE_CONSOLE FreeConsoleRequest;
573
574 /* Handles */
575 CSRSS_OPEN_CONSOLE OpenConsoleRequest;
576 CSRSS_CLOSE_HANDLE CloseHandleRequest;
577 CSRSS_VERIFY_HANDLE VerifyHandleRequest;
578 CSRSS_DUPLICATE_HANDLE DuplicateHandleRequest;
579 CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
580
581 /* Cursor */
582 CSRSS_CURSOR_INFO CursorInfoRequest;
583 CSRSS_SET_CURSOR_POSITION SetCursorPositionRequest;
584
585 /* Screen buffer */
586 CSRSS_CREATE_SCREEN_BUFFER CreateScreenBufferRequest;
587 CSRSS_SET_SCREEN_BUFFER SetScreenBufferRequest;
588 CSRSS_SCREEN_BUFFER_INFO ScreenBufferInfoRequest;
589 CSRSS_SET_SCREEN_BUFFER_SIZE SetScreenBufferSize;
590 CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER ScrollConsoleScreenBufferRequest;
591
592 CSRSS_GET_CONSOLE_SELECTION_INFO GetConsoleSelectionInfo;
593 CSRSS_FLUSH_INPUT_BUFFER FlushInputBufferRequest;
594
595 /* Console mode */
596 CSRSS_CONSOLE_MODE ConsoleModeRequest;
597 CSRSS_CONSOLE_HW_STATE ConsoleHardwareStateRequest;
598
599 /* Console window */
600 CSRSS_SET_TITLE SetTitleRequest;
601 CSRSS_GET_TITLE GetTitleRequest;
602 CSRSS_GET_CONSOLE_WINDOW GetConsoleWindowRequest;
603 CSRSS_SET_CONSOLE_ICON SetConsoleIconRequest;
604
605 /* Read */
606 CSRSS_READ_CONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
607 CSRSS_GET_CONSOLE_INPUT GetConsoleInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
608 CSRSS_READ_CONSOLE_OUTPUT ReadConsoleOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
609 CSRSS_READ_CONSOLE_OUTPUT_CODE ReadConsoleOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
610
611 /* Write */
612 CSRSS_WRITE_CONSOLE WriteConsoleRequest;
613 CSRSS_WRITE_CONSOLE_INPUT WriteConsoleInputRequest;
614 CSRSS_WRITE_CONSOLE_OUTPUT WriteConsoleOutputRequest;
615 CSRSS_WRITE_CONSOLE_OUTPUT_CHAR WriteConsoleOutputCharRequest;
616 CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB WriteConsoleOutputAttribRequest;
617
618 CSRSS_FILL_OUTPUT FillOutputRequest;
619 CSRSS_FILL_OUTPUT_ATTRIB FillOutputAttribRequest;
620 CSRSS_SET_ATTRIB SetAttribRequest;
621
622 /* Aliases */
623 CSRSS_CONSOLE_ALIAS ConsoleAlias;
624 CSRSS_GET_ALL_CONSOLE_ALIASES GetAllConsoleAliases;
625 CSRSS_GET_ALL_CONSOLE_ALIASES_LENGTH GetAllConsoleAliasesLength;
626 CSRSS_GET_CONSOLE_ALIASES_EXES GetConsoleAliasesExes;
627 CSRSS_GET_CONSOLE_ALIASES_EXES_LENGTH GetConsoleAliasesExesLength;
628
629 /* History */
630 CSRSS_GET_COMMAND_HISTORY GetCommandHistory;
631 CSRSS_GET_COMMAND_HISTORY_LENGTH GetCommandHistoryLength;
632 CSRSS_EXPUNGE_COMMAND_HISTORY ExpungeCommandHistory;
633 CSRSS_SET_HISTORY_NUMBER_COMMANDS SetHistoryNumberCommands;
634 CSRSS_HISTORY_INFO HistoryInfoRequest;
635
636 CSRSS_GENERATE_CTRL_EVENT GenerateCtrlEvent;
637 CSRSS_GET_NUM_INPUT_EVENTS GetNumInputEventsRequest;
638
639 /* CodePage */
640 CSRSS_GET_CONSOLE_CP GetConsoleCodePage;
641 CSRSS_SET_CONSOLE_CP SetConsoleCodePage;
642 CSRSS_GET_CONSOLE_OUTPUT_CP GetConsoleOutputCodePage;
643 CSRSS_SET_CONSOLE_OUTPUT_CP SetConsoleOutputCodePage;
644
645 CSRSS_GET_PROCESS_LIST GetProcessListRequest;
646 } Data;
647 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
648
649 #endif // _CONMSG_H
650
651 /* EOF */