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