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