[CONSOLE.DLL-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 typedef struct _CONSOLE_START_INFO
116 {
117 DWORD dwStartupFlags;
118 DWORD FillAttribute;
119 COORD ScreenBufferSize;
120 WORD ShowWindow;
121 POINT ConsoleWindowOrigin;
122 SIZE ConsoleWindowSize;
123 // UNICODE_STRING ConsoleTitle;
124 WCHAR ConsoleTitle[MAX_PATH + 1];
125 } CONSOLE_START_INFO, *PCONSOLE_START_INFO;
126
127 typedef struct _CONSOLE_CONNECTION_INFO
128 {
129 BOOL ConsoleNeeded; // Used for GUI apps only.
130
131 /* Adapted from CONSOLE_ALLOCCONSOLE */
132 CONSOLE_START_INFO ConsoleStartInfo;
133 WCHAR AppPath[MAX_PATH + 1];
134
135 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
136 HANDLE InputHandle;
137 HANDLE OutputHandle;
138 HANDLE ErrorHandle;
139 HANDLE InputWaitHandle;
140 LPTHREAD_START_ROUTINE CtrlDispatcher;
141 LPTHREAD_START_ROUTINE PropDispatcher;
142 } CONSOLE_CONNECTION_INFO, *PCONSOLE_CONNECTION_INFO;
143
144
145 typedef struct
146 {
147 USHORT nMaxIds;
148 ULONG nProcessIdsTotal;
149 PDWORD pProcessIds;
150 } CONSOLE_GETPROCESSLIST, *PCONSOLE_GETPROCESSLIST;
151
152 typedef struct
153 {
154 HANDLE OutputHandle;
155
156 BOOL Unicode;
157 ULONG NrCharactersToWrite;
158 ULONG NrCharactersWritten;
159
160 ULONG BufferSize;
161 PVOID Buffer;
162 } CONSOLE_WRITECONSOLE, *PCONSOLE_WRITECONSOLE;
163
164 typedef struct
165 {
166 HANDLE InputHandle;
167
168 BOOL Unicode;
169 WORD NrCharactersToRead;
170 WORD NrCharactersRead;
171
172 UNICODE_STRING ExeName;
173 DWORD CtrlWakeupMask;
174 DWORD ControlKeyState;
175
176 ULONG BufferSize;
177 PVOID Buffer;
178 } CONSOLE_READCONSOLE, *PCONSOLE_READCONSOLE;
179
180 typedef struct
181 {
182 PCONSOLE_START_INFO ConsoleStartInfo;
183 LPWSTR AppPath; // Length: MAX_PATH + 1
184
185 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
186 HANDLE InputHandle;
187 HANDLE OutputHandle;
188 HANDLE ErrorHandle;
189 HANDLE InputWaitHandle;
190 LPTHREAD_START_ROUTINE CtrlDispatcher;
191 LPTHREAD_START_ROUTINE PropDispatcher;
192 } CONSOLE_ALLOCCONSOLE, *PCONSOLE_ALLOCCONSOLE;
193
194 typedef struct
195 {
196 DWORD ProcessId; // If ProcessId == ATTACH_PARENT_PROCESS == -1, then attach the current process to its parent process console.
197 HANDLE Console; // ConsoleHandle // In fact, it is a PCSRSS_CONSOLE <-- correct that !!
198 HANDLE InputHandle;
199 HANDLE OutputHandle;
200 HANDLE ErrorHandle;
201 HANDLE InputWaitHandle;
202 LPTHREAD_START_ROUTINE CtrlDispatcher;
203 LPTHREAD_START_ROUTINE PropDispatcher;
204 } CONSOLE_ATTACHCONSOLE, *PCONSOLE_ATTACHCONSOLE;
205
206 typedef struct
207 {
208 ULONG Dummy;
209 } CONSOLE_FREECONSOLE, *PCONSOLE_FREECONSOLE;
210
211 typedef struct
212 {
213 HANDLE OutputHandle;
214 CONSOLE_SCREEN_BUFFER_INFO Info;
215 } CONSOLE_GETSCREENBUFFERINFO, *PCONSOLE_GETSCREENBUFFERINFO;
216
217 typedef struct
218 {
219 HANDLE OutputHandle;
220 COORD Position;
221 } CONSOLE_SETCURSORPOSITION, *PCONSOLE_SETCURSORPOSITION;
222
223 typedef struct
224 {
225 HANDLE OutputHandle;
226 CONSOLE_CURSOR_INFO Info;
227 } CONSOLE_GETSETCURSORINFO, *PCONSOLE_GETSETCURSORINFO;
228
229 typedef struct
230 {
231 HANDLE OutputHandle;
232 WORD Attrib;
233 } CONSOLE_SETTEXTATTRIB, *PCONSOLE_SETTEXTATTRIB;
234
235 typedef struct
236 {
237 HANDLE ConsoleHandle; /* A valid input or output console handle */
238 DWORD ConsoleMode;
239 } CONSOLE_GETSETCONSOLEMODE, *PCONSOLE_GETSETCONSOLEMODE;
240
241 typedef struct
242 {
243 HANDLE OutputHandle; /* Handle to newly created screen buffer */
244
245 DWORD Access;
246 DWORD ShareMode;
247 BOOL Inheritable;
248 } CONSOLE_CREATESCREENBUFFER, *PCONSOLE_CREATESCREENBUFFER;
249
250 typedef struct
251 {
252 HANDLE OutputHandle; /* Handle to screen buffer to switch to */
253 } CONSOLE_SETACTIVESCREENBUFFER, *PCONSOLE_SETACTIVESCREENBUFFER;
254
255 typedef struct
256 {
257 DWORD Length;
258 PWCHAR Title;
259 } CONSOLE_GETSETCONSOLETITLE, *PCONSOLE_GETSETCONSOLETITLE;
260
261 typedef struct
262 {
263 HANDLE OutputHandle;
264
265 BOOL Unicode;
266 COORD BufferSize;
267 COORD BufferCoord;
268 SMALL_RECT WriteRegion;
269 CHAR_INFO* CharInfo;
270 } CONSOLE_WRITEOUTPUT, *PCONSOLE_WRITEOUTPUT;
271
272 typedef struct
273 {
274 HANDLE InputHandle;
275 } CONSOLE_FLUSHINPUTBUFFER, *PCONSOLE_FLUSHINPUTBUFFER;
276
277 typedef struct
278 {
279 HANDLE OutputHandle;
280
281 BOOL Unicode;
282 SMALL_RECT ScrollRectangle;
283 BOOL UseClipRectangle;
284 SMALL_RECT ClipRectangle;
285 COORD DestinationOrigin;
286 CHAR_INFO Fill;
287 } CONSOLE_SCROLLSCREENBUFFER, *PCONSOLE_SCROLLSCREENBUFFER;
288
289
290 /*
291 * An attribute or a character are instances of the same entity, namely
292 * a "code" (what would be called an (ANSI) escape sequence). Therefore
293 * encode them inside the same structure.
294 */
295 typedef enum _CODE_TYPE
296 {
297 CODE_ASCII = 0x01,
298 CODE_UNICODE = 0x02,
299 CODE_ATTRIBUTE = 0x03
300 } CODE_TYPE;
301
302 typedef struct
303 {
304 HANDLE OutputHandle;
305
306 DWORD NumCodesToRead;
307 COORD ReadCoord;
308 COORD EndCoord;
309
310 DWORD CodesRead;
311
312 CODE_TYPE CodeType;
313 union
314 {
315 PVOID pCode;
316 PCHAR AsciiChar;
317 PWCHAR UnicodeChar;
318 PWORD Attribute;
319 } pCode; // Either a pointer to a character or to an attribute.
320 } CONSOLE_READOUTPUTCODE, *PCONSOLE_READOUTPUTCODE;
321
322 typedef struct
323 {
324 HANDLE OutputHandle;
325
326 ULONG BufferSize;
327 WORD Length;
328 COORD Coord;
329 COORD EndCoord;
330
331 ULONG NrCharactersWritten;
332
333 USHORT CodeType;
334 union
335 {
336 // PVOID String;
337 PVOID pCode;
338 PCHAR AsciiChar;
339 PWCHAR UnicodeChar;
340 PWORD Attribute;
341 } pCode; // Either a pointer to a character or to an attribute.
342 } CONSOLE_WRITEOUTPUTCODE, *PCONSOLE_WRITEOUTPUTCODE;
343
344 typedef struct
345 {
346 HANDLE OutputHandle;
347
348 CODE_TYPE CodeType;
349 union
350 {
351 CHAR AsciiChar;
352 WCHAR UnicodeChar;
353 WORD Attribute;
354 } Code; // Either a character or an attribute.
355
356 COORD Coord;
357 ULONG Length;
358
359 ULONG NrCharactersWritten; // FIXME: Only for chars, is it removable ?
360 } CONSOLE_FILLOUTPUTCODE, *PCONSOLE_FILLOUTPUTCODE;
361
362 typedef struct
363 {
364 HANDLE InputHandle;
365 BOOL Unicode;
366 BOOL bRead; // TRUE --> Read ; FALSE --> Peek
367
368 ULONG InputsRead;
369
370 ULONG Length;
371 PINPUT_RECORD InputRecord;
372 } CONSOLE_GETINPUT, *PCONSOLE_GETINPUT;
373
374 typedef struct
375 {
376 HANDLE OutputHandle;
377
378 BOOL Unicode;
379 COORD BufferSize;
380 COORD BufferCoord;
381 SMALL_RECT ReadRegion;
382 CHAR_INFO* CharInfo;
383 } CONSOLE_READOUTPUT, *PCONSOLE_READOUTPUT;
384
385 typedef struct
386 {
387 HANDLE InputHandle;
388 BOOL Unicode;
389 DWORD Length;
390 INPUT_RECORD* InputRecord;
391 } CONSOLE_WRITEINPUT, *PCONSOLE_WRITEINPUT;
392
393 typedef struct
394 {
395 HANDLE ConsoleHandle;
396 } CONSOLE_CLOSEHANDLE, *PCONSOLE_CLOSEHANDLE;
397
398 typedef struct
399 {
400 HANDLE ConsoleHandle;
401 } CONSOLE_VERIFYHANDLE, *PCONSOLE_VERIFYHANDLE;
402
403 typedef struct
404 {
405 HANDLE ConsoleHandle;
406 DWORD Access;
407 BOOL Inheritable;
408 DWORD Options;
409 } CONSOLE_DUPLICATEHANDLE, *PCONSOLE_DUPLICATEHANDLE;
410
411 /*
412 * Type of handles.
413 */
414 typedef enum _CONSOLE_HANDLE_TYPE
415 {
416 HANDLE_INPUT = 0x01,
417 HANDLE_OUTPUT = 0x02
418 } CONSOLE_HANDLE_TYPE;
419
420 typedef struct
421 {
422 HANDLE ConsoleHandle;
423 CONSOLE_HANDLE_TYPE HandleType;
424 DWORD Access;
425 BOOL Inheritable;
426 DWORD ShareMode;
427 } CONSOLE_OPENCONSOLE, *PCONSOLE_OPENCONSOLE;
428
429 #if 0
430 typedef struct
431 {
432 HANDLE InputWaitHandle;
433 } CSRSS_GET_INPUT_WAIT_HANDLE, *PCSRSS_GET_INPUT_WAIT_HANDLE;
434 #endif
435
436
437 /*
438 * Console hardware states.
439 */
440 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
441 #define CONSOLE_HARDWARE_STATE_DIRECT 1
442
443 typedef struct
444 {
445 HANDLE OutputHandle;
446 DWORD State;
447 } CONSOLE_GETSETHWSTATE, *PCONSOLE_GETSETHWSTATE;
448
449 typedef struct
450 {
451 HWND WindowHandle;
452 } CONSOLE_GETWINDOW, *PCONSOLE_GETWINDOW;
453
454 typedef struct
455 {
456 HICON WindowIcon;
457 } CONSOLE_SETICON, *PCONSOLE_SETICON;
458
459
460
461 typedef struct
462 {
463 ULONG SourceLength;
464 ULONG TargetLength; // Also used for storing the number of bytes written.
465 ULONG ExeLength;
466 LPWSTR Source;
467 LPWSTR Target;
468 LPWSTR Exe;
469 } CONSOLE_ADDGETALIAS, *PCONSOLE_ADDGETALIAS;
470
471 typedef struct
472 {
473 DWORD ExeLength;
474 DWORD AliasesBufferLength;
475 LPWSTR ExeName;
476 LPWSTR AliasesBuffer;
477 } CONSOLE_GETALLALIASES, *PCONSOLE_GETALLALIASES;
478
479 typedef struct
480 {
481 DWORD Length;
482 DWORD ExeLength;
483 LPWSTR ExeName;
484 } CONSOLE_GETALLALIASESLENGTH, *PCONSOLE_GETALLALIASESLENGTH;
485
486 typedef struct
487 {
488 DWORD Length;
489 LPWSTR ExeNames;
490 } CONSOLE_GETALIASESEXES, *PCONSOLE_GETALIASESEXES;
491
492 typedef struct
493 {
494 DWORD Length;
495 } CONSOLE_GETALIASESEXESLENGTH, *PCONSOLE_GETALIASESEXESLENGTH;
496
497
498
499 typedef struct
500 {
501 UNICODE_STRING ExeName;
502 PWCHAR History;
503 DWORD Length;
504 } CONSOLE_GETCOMMANDHISTORY, *PCONSOLE_GETCOMMANDHISTORY;
505
506 typedef struct
507 {
508 UNICODE_STRING ExeName;
509 DWORD Length;
510 } CONSOLE_GETCOMMANDHISTORYLENGTH, *PCONSOLE_GETCOMMANDHISTORYLENGTH;
511
512 typedef struct
513 {
514 UNICODE_STRING ExeName;
515 } CONSOLE_EXPUNGECOMMANDHISTORY, *PCONSOLE_EXPUNGECOMMANDHISTORY;
516
517 typedef struct
518 {
519 UNICODE_STRING ExeName;
520 DWORD NumCommands;
521 } CONSOLE_SETHISTORYNUMBERCOMMANDS, *PCONSOLE_SETHISTORYNUMBERCOMMANDS;
522
523 typedef struct
524 {
525 UINT HistoryBufferSize;
526 UINT NumberOfHistoryBuffers;
527 DWORD dwFlags;
528 } CONSOLE_GETSETHISTORYINFO, *PCONSOLE_GETSETHISTORYINFO;
529
530
531
532 typedef struct
533 {
534 DWORD Event;
535 DWORD ProcessGroup;
536 } CONSOLE_GENERATECTRLEVENT, *PCONSOLE_GENERATECTRLEVENT;
537
538 typedef struct
539 {
540 HANDLE InputHandle;
541 DWORD NumInputEvents;
542 } CONSOLE_GETNUMINPUTEVENTS, *PCONSOLE_GETNUMINPUTEVENTS;
543
544 typedef struct
545 {
546 HANDLE OutputHandle;
547 COORD Size;
548 } CONSOLE_SETSCREENBUFFERSIZE, *PCONSOLE_SETSCREENBUFFERSIZE;
549
550 typedef struct
551 {
552 CONSOLE_SELECTION_INFO Info;
553 } CONSOLE_GETSELECTIONINFO, *PCONSOLE_GETSELECTIONINFO;
554
555 typedef struct
556 {
557 BOOL InputCP; // TRUE : Input Code Page ; FALSE : Output Code Page
558 UINT CodePage;
559 } CONSOLE_GETSETINPUTOUTPUTCP, *PCONSOLE_GETSETINPUTOUTPUTCP;
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 CONSOLE_ALLOCCONSOLE AllocConsoleRequest;
572 CONSOLE_ATTACHCONSOLE AttachConsoleRequest;
573 CONSOLE_FREECONSOLE FreeConsoleRequest;
574
575 /* Handles */
576 CONSOLE_OPENCONSOLE OpenConsoleRequest;
577 CONSOLE_CLOSEHANDLE CloseHandleRequest;
578 CONSOLE_VERIFYHANDLE VerifyHandleRequest;
579 CONSOLE_DUPLICATEHANDLE DuplicateHandleRequest;
580 #if 0
581 CSRSS_GET_INPUT_WAIT_HANDLE GetConsoleInputWaitHandle;
582 #endif
583
584 /* Cursor */
585 CONSOLE_GETSETCURSORINFO CursorInfoRequest;
586 CONSOLE_SETCURSORPOSITION SetCursorPositionRequest;
587
588 /* Screen buffer */
589 CONSOLE_CREATESCREENBUFFER CreateScreenBufferRequest;
590 CONSOLE_SETACTIVESCREENBUFFER SetScreenBufferRequest;
591 CONSOLE_GETSCREENBUFFERINFO ScreenBufferInfoRequest;
592 CONSOLE_SETSCREENBUFFERSIZE SetScreenBufferSizeRequest;
593 CONSOLE_SCROLLSCREENBUFFER ScrollScreenBufferRequest;
594
595 CONSOLE_GETSELECTIONINFO GetSelectionInfoRequest;
596 CONSOLE_FLUSHINPUTBUFFER FlushInputBufferRequest;
597
598 /* Console mode */
599 CONSOLE_GETSETCONSOLEMODE ConsoleModeRequest;
600 CONSOLE_GETSETHWSTATE HardwareStateRequest;
601
602 /* Console window */
603 CONSOLE_GETSETCONSOLETITLE TitleRequest;
604 CONSOLE_GETWINDOW GetWindowRequest;
605 CONSOLE_SETICON SetIconRequest;
606
607 /* Read */
608 CONSOLE_READCONSOLE ReadConsoleRequest; // SrvReadConsole / ReadConsole
609 CONSOLE_GETINPUT GetInputRequest; // SrvGetConsoleInput / PeekConsoleInput & ReadConsoleInput
610 CONSOLE_READOUTPUT ReadOutputRequest; // SrvReadConsoleOutput / ReadConsoleOutput
611 CONSOLE_READOUTPUTCODE ReadOutputCodeRequest; // SrvReadConsoleOutputString / ReadConsoleOutputAttribute & ReadConsoleOutputCharacter
612
613 /* Write */
614 CONSOLE_WRITECONSOLE WriteConsoleRequest; // SrvWriteConsole / WriteConsole
615 CONSOLE_WRITEINPUT WriteInputRequest;
616 CONSOLE_WRITEOUTPUT WriteOutputRequest;
617 CONSOLE_WRITEOUTPUTCODE WriteOutputCodeRequest;
618
619 CONSOLE_FILLOUTPUTCODE FillOutputRequest;
620 CONSOLE_SETTEXTATTRIB SetTextAttribRequest;
621
622 /* Aliases */
623 CONSOLE_ADDGETALIAS ConsoleAliasRequest;
624 CONSOLE_GETALLALIASES GetAllAliasesRequest;
625 CONSOLE_GETALLALIASESLENGTH GetAllAliasesLengthRequest;
626 CONSOLE_GETALIASESEXES GetAliasesExesRequest;
627 CONSOLE_GETALIASESEXESLENGTH GetAliasesExesLengthRequest;
628
629 /* History */
630 CONSOLE_GETCOMMANDHISTORY GetCommandHistoryRequest;
631 CONSOLE_GETCOMMANDHISTORYLENGTH GetCommandHistoryLengthRequest;
632 CONSOLE_EXPUNGECOMMANDHISTORY ExpungeCommandHistoryRequest;
633 CONSOLE_SETHISTORYNUMBERCOMMANDS SetHistoryNumberCommandsRequest;
634 CONSOLE_GETSETHISTORYINFO HistoryInfoRequest;
635
636 CONSOLE_GENERATECTRLEVENT GenerateCtrlEventRequest;
637 CONSOLE_GETNUMINPUTEVENTS GetNumInputEventsRequest;
638
639 /* Input and Output Code Pages */
640 CONSOLE_GETSETINPUTOUTPUTCP ConsoleCPRequest;
641
642 CONSOLE_GETPROCESSLIST GetProcessListRequest;
643 } Data;
644 } CONSOLE_API_MESSAGE, *PCONSOLE_API_MESSAGE;
645
646 // Check that a CONSOLE_API_MESSAGE can hold in a CSR_API_MESSAGE.
647 CHECK_API_MSG_SIZE(CONSOLE_API_MESSAGE);
648
649 #endif // _CONMSG_H
650
651 /* EOF */