1. implemented SetProcessWorkingSetSize()
[reactos.git] / reactos / include / csrss / csrss.h
1 #ifndef __INCLUDE_CSRSS_CSRSS_H
2 #define __INCLUDE_CSRSS_CSRSS_H
3
4 #include <windows.h>
5 #include <ddk/ntddblue.h>
6 #include <ntos.h>
7
8 #define CSR_CSRSS_SECTION_SIZE (65536)
9
10 typedef __declspec(noreturn) VOID CALLBACK(*PCONTROLDISPATCHER)(DWORD);
11
12 typedef struct
13 {
14 } CSRSS_CONNECT_PROCESS_REQUEST, PCSRSS_CONNECT_PROCESS_REQUEST;
15
16 typedef struct
17 {
18 } CSRSS_CONNECT_PROCESS_REPLY, PCSRSS_CONNECT_PROCESS_REPLY;
19
20 typedef struct
21 {
22 ULONG NewProcessId;
23 ULONG Flags;
24 PCONTROLDISPATCHER CtrlDispatcher;
25 } CSRSS_CREATE_PROCESS_REQUEST, *PCSRSS_CREATE_PROCESS_REQUEST;
26
27 typedef struct
28 {
29 HANDLE Console;
30 HANDLE InputHandle;
31 HANDLE OutputHandle;
32 } CSRSS_CREATE_PROCESS_REPLY, *PCSRSS_CREATE_PROCESS_REPLY;
33
34 typedef struct
35 {
36 } CSRSS_TERMINATE_PROCESS_REQUEST, PCSRSS_TERMINATE_PROCESS_REQUEST;
37
38 typedef struct
39 {
40 } CSRSS_TERMINATE_PROCESS_REPLY, PCSRSS_TERMINATE_PROCESS_REPLY;
41
42 typedef struct
43 {
44 HANDLE ConsoleHandle;
45 ULONG NrCharactersToWrite;
46 BYTE Buffer[1];
47 } CSRSS_WRITE_CONSOLE_REQUEST, *PCSRSS_WRITE_CONSOLE_REQUEST;
48
49 typedef struct
50 {
51 ULONG NrCharactersWritten;
52 } CSRSS_WRITE_CONSOLE_REPLY, *PCSRSS_WRITE_CONSOLE_REPLY;
53
54 typedef struct
55 {
56 HANDLE ConsoleHandle;
57 WORD NrCharactersToRead;
58 WORD nCharsCanBeDeleted; /* number of chars already in buffer that can be backspaced */
59 } CSRSS_READ_CONSOLE_REQUEST, *PCSRSS_READ_CONSOLE_REQUEST;
60
61 typedef struct
62 {
63 HANDLE EventHandle;
64 ULONG NrCharactersRead;
65 BYTE Buffer[1];
66 } CSRSS_READ_CONSOLE_REPLY, *PCSRSS_READ_CONSOLE_REPLY;
67
68 typedef struct
69 {
70 PCONTROLDISPATCHER CtrlDispatcher;
71 } CSRSS_ALLOC_CONSOLE_REQUEST, *PCSRSS_ALLOC_CONSOLE_REQUEST;
72
73 typedef struct
74 {
75 HANDLE Console;
76 HANDLE InputHandle;
77 HANDLE OutputHandle;
78 } CSRSS_ALLOC_CONSOLE_REPLY, *PCSRSS_ALLOC_CONSOLE_REPLY;
79
80 typedef struct
81 {
82 } CSRSS_FREE_CONSOLE_REQUEST, *PCSRSS_FREE_CONSOLE_REQUEST;
83
84 typedef struct
85 {
86 } CSRSS_FREE_CONSOLE_REPLY, *PCSRSS_FREE_CONSOLE_REPLY;
87
88 typedef struct
89 {
90 HANDLE ConsoleHandle;
91 } CSRSS_SCREEN_BUFFER_INFO_REQUEST, *PCSRSS_SCREEN_BUFFER_INFO_REQUEST;
92
93 typedef struct
94 {
95 CONSOLE_SCREEN_BUFFER_INFO Info;
96 } CSRSS_SCREEN_BUFFER_INFO_REPLY, *PCSRSS_SCREEN_BUFFER_INFO_REPLY;
97
98 typedef struct
99 {
100 HANDLE ConsoleHandle;
101 COORD Position;
102 } CSRSS_SET_CURSOR_REQUEST, *PCSRSS_SET_CURSOR_REQUEST;
103
104 typedef struct
105 {
106 } CSRSS_SET_CURSOR_REPLY, *PCSRSS_SET_CURSOR_REPLY;
107
108 typedef struct
109 {
110 HANDLE ConsoleHandle;
111 CHAR Char;
112 COORD Position;
113 WORD Length;
114 } CSRSS_FILL_OUTPUT_REQUEST, *PCSRSS_FILL_OUTPUT_REQUEST;
115
116 typedef struct
117 {
118 } CSRSS_FILL_OUTPUT_REPLY, *PCSRSS_FILL_OUTPUT_REPLY;
119
120 typedef struct
121 {
122 HANDLE ConsoleHandle;
123 CHAR Attribute;
124 COORD Coord;
125 WORD Length;
126 } CSRSS_FILL_OUTPUT_ATTRIB_REQUEST, *PCSRSS_FILL_OUTPUT_ATTRIB_REQUEST;
127
128 typedef struct
129 {
130 } CSRSS_FILL_OUTPUT_ATTRIB_REPLY, *PCSRSS_FILL_OUTPUT_ATTRIB_REPLY;
131
132 typedef struct
133 {
134 HANDLE ConsoleHandle;
135 BOOL Unicode;
136 } CSRSS_READ_INPUT_REQUEST, *PCSRSS_READ_INPUT_REQUEST;
137
138 typedef struct
139 {
140 INPUT_RECORD Input;
141 BOOL MoreEvents;
142 HANDLE Event;
143 } CSRSS_READ_INPUT_REPLY, *PCSRSS_READ_INPUT_REPLY;
144
145 typedef struct
146 {
147 HANDLE ConsoleHandle;
148 WORD Length;
149 COORD Coord;
150 CHAR String[1];
151 } CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST;
152
153 typedef struct
154 {
155 COORD EndCoord;
156 } CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY;
157
158 typedef struct
159 {
160 HANDLE ConsoleHandle;
161 WORD Length;
162 COORD Coord;
163 CHAR String[1];
164 } CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST;
165
166 typedef struct
167 {
168 COORD EndCoord;
169 } CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY;
170
171 typedef struct
172 {
173 HANDLE ConsoleHandle;
174 } CSRSS_GET_CURSOR_INFO_REQUEST, *PCSRSS_GET_CURSOR_INFO_REQUEST;
175
176 typedef struct
177 {
178 CONSOLE_CURSOR_INFO Info;
179 } CSRSS_GET_CURSOR_INFO_REPLY, *PCSRSS_GET_CURSOR_INFO_REPLY;
180
181 typedef struct
182 {
183 HANDLE ConsoleHandle;
184 CONSOLE_CURSOR_INFO Info;
185 } CSRSS_SET_CURSOR_INFO_REQUEST, *PCSRSS_SET_CURSOR_INFO_REQUEST;
186
187 typedef struct
188 {
189 } CSRSS_SET_CURSOR_INFO_REPLY, *PCSRSS_SET_CURSOR_INFO_REPLY;
190
191 typedef struct
192 {
193 HANDLE ConsoleHandle;
194 CHAR Attrib;
195 } CSRSS_SET_ATTRIB_REQUEST, *PCSRSS_SET_ATTRIB_REQUEST;
196
197 typedef struct
198 {
199 } CSRSS_SET_ATTRIB_REPLY, *PCSRSS_SET_ATTRIB_REPLY;
200
201 typedef struct
202 {
203 HANDLE ConsoleHandle;
204 DWORD Mode;
205 } CSRSS_SET_CONSOLE_MODE_REQUEST, *PCSRSS_SET_CONSOLE_MODE_REQUEST;
206
207 typedef struct
208 {
209 } CSRSS_SET_CONSOLE_MODE_REPLY, *PCSRSS_SET_CONSOLE_MODE_REPLY;
210
211 typedef struct
212 {
213 HANDLE ConsoleHandle;
214 } CSRSS_GET_CONSOLE_MODE_REQUEST, *PCSRSS_GET_CONSOLE_MODE_REQUEST;
215
216 typedef struct
217 {
218 DWORD ConsoleMode;
219 } CSRSS_GET_CONSOLE_MODE_REPLY, *PCSRSS_GET_CONSOLE_MODE_REPLY;
220
221 typedef struct
222 {
223 /* may want to add some parameters here someday */
224 } CSRSS_CREATE_SCREEN_BUFFER_REQUEST, *PCSRSS_CREATE_SCREEN_BUFFER_REQUEST;
225
226 typedef struct
227 {
228 HANDLE OutputHandle; /* handle to newly created screen buffer */
229 } CSRSS_CREATE_SCREEN_BUFFER_REPLY, *PCSRSS_CREATE_SCREEN_BUFFER_REPLY;
230
231 typedef struct
232 {
233 HANDLE OutputHandle; /* handle to screen buffer to switch to */
234 } CSRSS_SET_SCREEN_BUFFER_REQUEST, *PCSRSS_SET_SCREEN_BUFFER_REQUEST;
235
236 typedef struct
237 {
238 } CSRSS_SET_SCREEN_BUFFER_REPLY, *PCSRSS_SET_SCREEN_BUFFER_REPLY;
239
240 typedef struct
241 {
242 HANDLE UniqueThread;
243 } CSRSS_IDENTIFY_ALERTABLE_THREAD_REQUEST, * PCSRSS_IDENTIFY_ALERTABLE_THREAD_REQUEST;
244
245 typedef struct
246 {
247 CLIENT_ID Cid;
248 } CSRSS_IDENTIFY_ALERTABLE_THREAD_REPLY, * PCSRSS_IDENTIFY_ALERTABLE_THREAD_REPLY;
249
250 typedef struct
251 {
252 HANDLE Console;
253 DWORD Length;
254 WCHAR Title[1];
255 } CSRSS_SET_TITLE_REQUEST, *PCSRSS_SET_TITLE_REQUEST;
256
257 typedef struct
258 {
259 } CSRSS_SET_TITLE_REPLY, *PCSRSS_SET_TITLE_REPLY;
260
261 typedef struct
262 {
263 HANDLE ConsoleHandle;
264 } CSRSS_GET_TITLE_REQUEST, *PCSRSS_GET_TITLE_REQUEST;
265
266 typedef struct
267 {
268 HANDLE ConsoleHandle;
269 DWORD Length;
270 WCHAR Title[1];
271 } CSRSS_GET_TITLE_REPLY, *PCSRSS_GET_TITLE_REPLY;
272
273 typedef struct
274 {
275 HANDLE ConsoleHandle;
276 BOOL Unicode;
277 COORD BufferSize;
278 COORD BufferCoord;
279 SMALL_RECT WriteRegion;
280 CHAR_INFO* CharInfo;
281 } CSRSS_WRITE_CONSOLE_OUTPUT_REQUEST, *PCSRSS_WRITE_CONSOLE_OUTPUT_REQUEST;
282
283 typedef struct
284 {
285 SMALL_RECT WriteRegion;
286 } CSRSS_WRITE_CONSOLE_OUTPUT_REPLY, *PCSRSS_WRITE_CONSOLE_OUTPUT_REPLY;
287
288 typedef struct
289 {
290 HANDLE ConsoleInput;
291 } CSRSS_FLUSH_INPUT_BUFFER_REQUEST, *PCSRSS_FLUSH_INPUT_BUFFER_REQUEST;
292
293 typedef struct
294 {
295 } CSRSS_FLUSH_INPUT_BUFFER_REPLY, *PCSRSS_FLUSH_INPUT_BUFFER_REPLY;
296
297 typedef struct
298 {
299 HANDLE ConsoleHandle;
300 SMALL_RECT ScrollRectangle;
301 BOOLEAN UseClipRectangle;
302 SMALL_RECT ClipRectangle;
303 COORD DestinationOrigin;
304 CHAR_INFO Fill;
305 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST;
306
307 typedef struct
308 {
309 } CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REPLY, *PCSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REPLY;
310
311 typedef struct
312 {
313 HANDLE ConsoleHandle;
314 DWORD NumCharsToRead;
315 COORD ReadCoord;
316 }CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST;
317
318 typedef struct
319 {
320 COORD EndCoord;
321 CHAR String[1];
322 }CSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY;
323
324 typedef struct
325 {
326 HANDLE ConsoleHandle;
327 DWORD NumAttrsToRead;
328 COORD ReadCoord;
329 }CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST;
330
331 typedef struct
332 {
333 COORD EndCoord;
334 CHAR String[1];
335 }CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY;
336
337 typedef struct
338 {
339 HANDLE ConsoleHandle;
340 }CSRSS_GET_NUM_INPUT_EVENTS_REQUEST, *PCSRSS_GET_NUM_INPUT_EVENTS_REQUEST;
341
342 typedef struct
343 {
344 DWORD NumInputEvents;
345 }CSRSS_GET_NUM_INPUT_EVENTS_REPLY, *PCSRSS_GET_NUM_INPUT_EVENTS_REPLY;
346
347 typedef struct
348 {
349 DWORD ProcessId;
350 } CSRSS_REGISTER_SERVICES_PROCESS_REQUEST, *PCSRSS_REGISTER_SERVICES_PROCESS_REQUEST;
351
352 typedef struct
353 {
354 } CSRSS_REGISTER_SERVICES_PROCESS_REPLY, *PCSRSS_REGISTER_SERVICES_PROCESS_REPLY;
355
356 typedef struct
357 {
358 UINT Flags;
359 DWORD Reserved;
360 } CSRSS_EXIT_REACTOS_REQUEST, *PCSRSS_EXIT_REACTOS_REQUEST;
361
362 typedef struct
363 {
364 } CSRSS_EXIT_REACTOS_REPLY, *PCSRSS_EXIT_REACTOS_REPLY;
365
366 typedef struct
367 {
368 DWORD Level;
369 DWORD Flags;
370 } CSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST, *PCSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST;
371
372 typedef struct
373 {
374 } CSRSS_SET_SHUTDOWN_PARAMETERS_REPLY, *PCSRSS_SET_SHUTDOWN_PARAMETERS_REPLY;
375
376 typedef struct
377 {
378 } CSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST, *PCSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST;
379
380 typedef struct
381 {
382 DWORD Level;
383 DWORD Flags;
384 } CSRSS_GET_SHUTDOWN_PARAMETERS_REPLY, *PCSRSS_GET_SHUTDOWN_PARAMETERS_REPLY;
385
386 typedef struct
387 {
388 HANDLE ConsoleHandle;
389 BOOL Unicode;
390 DWORD Length;
391 INPUT_RECORD* InputRecord;
392 } CSRSS_PEEK_CONSOLE_INPUT_REQUEST, *PCSRSS_PEEK_CONSOLE_INPUT_REQUEST;
393
394 typedef struct
395 {
396 DWORD Length;
397 } CSRSS_PEEK_CONSOLE_INPUT_REPLY, *PCSRSS_PEEK_CONSOLE_INPUT_REPLY;
398
399 typedef struct
400 {
401 HANDLE ConsoleHandle;
402 BOOL Unicode;
403 COORD BufferSize;
404 COORD BufferCoord;
405 SMALL_RECT ReadRegion;
406 CHAR_INFO* CharInfo;
407 } CSRSS_READ_CONSOLE_OUTPUT_REQUEST, *PCSRSS_READ_CONSOLE_OUTPUT_REQUEST;
408
409 typedef struct
410 {
411 SMALL_RECT ReadRegion;
412 } CSRSS_READ_CONSOLE_OUTPUT_REPLY, *PCSRSS_READ_CONSOLE_OUTPUT_REPLY;
413
414 typedef struct
415 {
416 HANDLE ConsoleHandle;
417 DWORD Length;
418 INPUT_RECORD* InputRecord;
419 } CSRSS_WRITE_CONSOLE_INPUT_REQUEST, *PCSRSS_WRITE_CONSOLE_INPUT_REQUEST;
420
421 typedef struct
422 {
423 DWORD Length;
424 } CSRSS_WRITE_CONSOLE_INPUT_REPLY, *PCSRSS_WRITE_CONSOLE_INPUT_REPLY;
425
426 typedef struct
427 {
428 } CSRSS_GET_INPUT_HANDLE_REQUEST, *PCSRSS_GET_INPUT_HANDLE_REQUEST;
429
430 typedef struct
431 {
432 HANDLE InputHandle;
433 } CSRSS_GET_INPUT_HANDLE_REPLY, *PCSRSS_GET_INPUT_HANDLE_REPLY;
434
435 typedef struct
436 {
437 } CSRSS_GET_OUTPUT_HANDLE_REQUEST, *PCSRSS_GET_OUTPUT_HANDLE_REQUEST;
438
439 typedef struct
440 {
441 HANDLE OutputHandle;
442 } CSRSS_GET_OUTPUT_HANDLE_REPLY, *PCSRSS_GET_OUTPUT_HANDLE_REPLY;
443
444 typedef struct
445 {
446 HANDLE Handle;
447 } CSRSS_CLOSE_HANDLE_REQUEST, *PCSRSS_CLOSE_HANDLE_REQUEST;
448
449 typedef struct
450 {
451 } CSRSS_CLOSE_HANDLE_REPLY, *PCSRSS_CLOSE_HANDLE_REPLY;
452
453 typedef struct
454 {
455 HANDLE Handle;
456 } CSRSS_VERIFY_HANDLE_REQUEST, *PCSRSS_VERIFY_HANDLE_REQUEST;
457
458 typedef struct
459 {
460 } CSRSS_VERIFY_HANDLE_REPLY, *PCSRSS_VERIFY_HANDLE_REPLY;
461
462 typedef struct
463 {
464 HANDLE Handle;
465 DWORD ProcessId;
466 } CSRSS_DUPLICATE_HANDLE_REQUEST, *PCSRSS_DUPLICATE_HANDLE_REQUEST;
467
468 typedef struct
469 {
470 HANDLE Handle;
471 } CSRSS_DUPLICATE_HANDLE_REPLY, *PCSRSS_DUPLICATE_HANDLE_REPLY;
472
473 #define CONSOLE_HARDWARE_STATE_GET 0
474 #define CONSOLE_HARDWARE_STATE_SET 1
475
476 #define CONSOLE_HARDWARE_STATE_GDI_MANAGED 0
477 #define CONSOLE_HARDWARE_STATE_DIRECT 1
478
479 typedef struct
480 {
481 HANDLE ConsoleHandle;
482 DWORD SetGet; /* 0=get; 1=set */
483 DWORD State;
484 } CSRSS_SETGET_CONSOLE_HW_STATE_REQUEST, *PCSRSS_SETGET_CONSOLE_HW_STATE_REQUEST;
485
486 typedef struct
487 {
488 HANDLE ConsoleHandle;
489 DWORD SetGet; /* 0=get; 1=set */
490 DWORD State;
491 } CSRSS_SETGET_CONSOLE_HW_STATE_REPLY, *PCSRSS_SETGET_CONSOLE_HW_STATE_REPLY;
492
493 typedef struct
494 {
495 } CSRSS_GET_CONSOLE_WINDOW_REQUEST, *PCSRSS_GET_CONSOLE_WINDOW_REQUEST;
496
497 typedef struct
498 {
499 HWND WindowHandle;
500 } CSRSS_GET_CONSOLE_WINDOW_REPLY, *PCSRSS_GET_CONSOLE_WINDOW_REPLY;
501
502 typedef struct
503 {
504 HICON WindowIcon;
505 } CSRSS_SET_CONSOLE_ICON_REQUEST, *PCSRSS_SET_CONSOLE_ICON_REQUEST;
506
507 typedef struct
508 {
509 } CSRSS_SET_CONSOLE_ICON_REPLY, *PCSRSS_SET_CONSOLE_ICON_REPLY;
510
511 typedef struct
512 {
513 WCHAR DesktopName[1];
514 } CSRSS_CREATE_DESKTOP_REQUEST, *PCSRSS_CREATE_DESKTOP_REQUEST;
515
516 typedef struct
517 {
518 } CSRSS_CREATE_DESKTOP_REPLY, *PCSRSS_CREATE_DESKTOP_REPLY;
519
520 typedef struct
521 {
522 HWND DesktopWindow;
523 ULONG Width;
524 ULONG Height;
525 } CSRSS_SHOW_DESKTOP_REQUEST, *PCSRSS_SHOW_DESKTOP_REQUEST;
526
527 typedef struct
528 {
529 } CSRSS_SHOW_DESKTOP_REPLY, *PCSRSS_SHOW_DESKTOP_REPLY;
530
531 typedef struct
532 {
533 HWND DesktopWindow;
534 } CSRSS_HIDE_DESKTOP_REQUEST, *PCSRSS_HIDE_DESKTOP_REQUEST;
535
536 typedef struct
537 {
538 } CSRSS_HIDE_DESKTOP_REPLY, *PCSRSS_HIDE_DESKTOP_REPLY;
539
540 typedef struct
541 {
542 HWND LogonNotifyWindow;
543 } CSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST, *PCSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST;
544
545 typedef struct
546 {
547 } CSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY, *PCSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY;
548
549 typedef struct
550 {
551 DWORD ProcessId;
552 BOOL Register;
553 } CSRSS_REGISTER_LOGON_PROCESS_REQUEST, *PCSRSS_REGISTER_LOGON_PROCESS_REQUEST;
554
555 typedef struct
556 {
557 } CSRSS_REGISTER_LOGON_PROCESS_REPLY, *PCSRSS_REGISTER_LOGON_PROCESS_REPLY;
558
559 typedef struct
560 {
561 } CSRSS_GET_CONSOLE_CP_REQUEST, *PCSRSS_GET_CONSOLE_CP_REQUEST;
562
563 typedef struct
564 {
565 UINT CodePage;
566 } CSRSS_GET_CONSOLE_CP_REPLY, *PCSRSS_GET_CONSOLE_CP_REPLY;
567
568 typedef struct
569 {
570 UINT CodePage;
571 } CSRSS_SET_CONSOLE_CP_REQUEST, *PCSRSS_SET_CONSOLE_CP_REQUEST;
572
573 typedef struct
574 {
575 } CSRSS_SET_CONSOLE_CP_REPLY, *PCSRSS_SET_CONSOLE_CP_REPLY;
576
577 typedef struct
578 {
579 } CSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST, *PCSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST;
580
581 typedef struct
582 {
583 UINT CodePage;
584 } CSRSS_GET_CONSOLE_OUTPUT_CP_REPLY, *PCSRSS_GET_CONSOLE_OUTPUT_CP_REPLY;
585
586 typedef struct
587 {
588 UINT CodePage;
589 } CSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST, *PCSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST;
590
591 typedef struct
592 {
593 } CSRSS_SET_CONSOLE_OUTPUT_CP_REPLY, *PCSRSS_SET_CONSOLE_OUTPUT_CP_REPLY;
594
595 #define CSRSS_MAX_WRITE_CONSOLE_REQUEST \
596 (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(CSRSS_WRITE_CONSOLE_REQUEST))
597
598 #define CSRSS_MAX_SET_TITLE_REQUEST (MAX_MESSAGE_DATA - sizeof( HANDLE ) - sizeof( DWORD ) - sizeof( ULONG ) - LPC_MESSAGE_BASE_SIZE)
599
600 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_CHAR (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST ))
601
602 #define CSRSS_MAX_WRITE_CONSOLE_OUTPUT_ATTRIB ((MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST )) / 2)
603
604 #define CSRSS_MAX_READ_CONSOLE_REQUEST (MAX_MESSAGE_DATA - sizeof( ULONG ) - sizeof( CSRSS_READ_CONSOLE_REQUEST ))
605
606 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_CHAR (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST))
607
608 #define CSRSS_MAX_READ_CONSOLE_OUTPUT_ATTRIB (MAX_MESSAGE_DATA - sizeof(ULONG) - sizeof(HANDLE) - sizeof(DWORD) - sizeof(CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST))
609
610 /* WCHARs, not bytes! */
611 #define CSRSS_MAX_TITLE_LENGTH 80
612
613 #define CSRSS_CREATE_PROCESS (0x0)
614 #define CSRSS_TERMINATE_PROCESS (0x1)
615 #define CSRSS_WRITE_CONSOLE (0x2)
616 #define CSRSS_READ_CONSOLE (0x3)
617 #define CSRSS_ALLOC_CONSOLE (0x4)
618 #define CSRSS_FREE_CONSOLE (0x5)
619 #define CSRSS_CONNECT_PROCESS (0x6)
620 #define CSRSS_SCREEN_BUFFER_INFO (0x7)
621 #define CSRSS_SET_CURSOR (0x8)
622 #define CSRSS_FILL_OUTPUT (0x9)
623 #define CSRSS_READ_INPUT (0xA)
624 #define CSRSS_WRITE_CONSOLE_OUTPUT_CHAR (0xB)
625 #define CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB (0xC)
626 #define CSRSS_FILL_OUTPUT_ATTRIB (0xD)
627 #define CSRSS_GET_CURSOR_INFO (0xE)
628 #define CSRSS_SET_CURSOR_INFO (0xF)
629 #define CSRSS_SET_ATTRIB (0x10)
630 #define CSRSS_GET_CONSOLE_MODE (0x11)
631 #define CSRSS_SET_CONSOLE_MODE (0x12)
632 #define CSRSS_CREATE_SCREEN_BUFFER (0x13)
633 #define CSRSS_SET_SCREEN_BUFFER (0x14)
634 #define CSRSS_SET_TITLE (0x15)
635 #define CSRSS_GET_TITLE (0x16)
636 #define CSRSS_WRITE_CONSOLE_OUTPUT (0x17)
637 #define CSRSS_FLUSH_INPUT_BUFFER (0x18)
638 #define CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER (0x19)
639 #define CSRSS_READ_CONSOLE_OUTPUT_CHAR (0x1A)
640 #define CSRSS_READ_CONSOLE_OUTPUT_ATTRIB (0x1B)
641 #define CSRSS_GET_NUM_INPUT_EVENTS (0x1C)
642 #define CSRSS_REGISTER_SERVICES_PROCESS (0x1D)
643 #define CSRSS_EXIT_REACTOS (0x1E)
644 #define CSRSS_GET_SHUTDOWN_PARAMETERS (0x1F)
645 #define CSRSS_SET_SHUTDOWN_PARAMETERS (0x20)
646 #define CSRSS_PEEK_CONSOLE_INPUT (0x21)
647 #define CSRSS_READ_CONSOLE_OUTPUT (0x22)
648 #define CSRSS_WRITE_CONSOLE_INPUT (0x23)
649 #define CSRSS_GET_INPUT_HANDLE (0x24)
650 #define CSRSS_GET_OUTPUT_HANDLE (0x25)
651 #define CSRSS_CLOSE_HANDLE (0x26)
652 #define CSRSS_VERIFY_HANDLE (0x27)
653 #define CSRSS_DUPLICATE_HANDLE (0x28)
654 #define CSRSS_SETGET_CONSOLE_HW_STATE (0x29)
655 #define CSRSS_GET_CONSOLE_WINDOW (0x2A)
656 #define CSRSS_CREATE_DESKTOP (0x2B)
657 #define CSRSS_SHOW_DESKTOP (0x2C)
658 #define CSRSS_HIDE_DESKTOP (0x2D)
659 #define CSRSS_SET_CONSOLE_ICON (0x2E)
660 #define CSRSS_SET_LOGON_NOTIFY_WINDOW (0x2F)
661 #define CSRSS_REGISTER_LOGON_PROCESS (0x30)
662 #define CSRSS_GET_CONSOLE_CP (0x31)
663 #define CSRSS_SET_CONSOLE_CP (0x32)
664 #define CSRSS_GET_CONSOLE_OUTPUT_CP (0x33)
665 #define CSRSS_SET_CONSOLE_OUTPUT_CP (0x34)
666
667 /* Keep in sync with definition below. */
668 #define CSRSS_REQUEST_HEADER_SIZE (LPC_MESSAGE_BASE_SIZE + sizeof(ULONG))
669
670 typedef struct
671 {
672 union
673 {
674 LPC_MESSAGE Header;
675 struct
676 {
677 BYTE HeaderReserved[LPC_MESSAGE_BASE_SIZE];
678 ULONG Type;
679 union
680 {
681 CSRSS_CREATE_PROCESS_REQUEST CreateProcessRequest;
682 CSRSS_CONNECT_PROCESS_REQUEST ConnectRequest;
683 CSRSS_WRITE_CONSOLE_REQUEST WriteConsoleRequest;
684 CSRSS_READ_CONSOLE_REQUEST ReadConsoleRequest;
685 CSRSS_ALLOC_CONSOLE_REQUEST AllocConsoleRequest;
686 CSRSS_SCREEN_BUFFER_INFO_REQUEST ScreenBufferInfoRequest;
687 CSRSS_SET_CURSOR_REQUEST SetCursorRequest;
688 CSRSS_FILL_OUTPUT_REQUEST FillOutputRequest;
689 CSRSS_READ_INPUT_REQUEST ReadInputRequest;
690 CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REQUEST WriteConsoleOutputCharRequest;
691 CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REQUEST WriteConsoleOutputAttribRequest;
692 CSRSS_FILL_OUTPUT_ATTRIB_REQUEST FillOutputAttribRequest;
693 CSRSS_SET_CURSOR_INFO_REQUEST SetCursorInfoRequest;
694 CSRSS_GET_CURSOR_INFO_REQUEST GetCursorInfoRequest;
695 CSRSS_SET_ATTRIB_REQUEST SetAttribRequest;
696 CSRSS_SET_CONSOLE_MODE_REQUEST SetConsoleModeRequest;
697 CSRSS_GET_CONSOLE_MODE_REQUEST GetConsoleModeRequest;
698 CSRSS_CREATE_SCREEN_BUFFER_REQUEST CreateScreenBufferRequest;
699 CSRSS_SET_SCREEN_BUFFER_REQUEST SetScreenBufferRequest;
700 CSRSS_SET_TITLE_REQUEST SetTitleRequest;
701 CSRSS_GET_TITLE_REQUEST GetTitleRequest;
702 CSRSS_WRITE_CONSOLE_OUTPUT_REQUEST WriteConsoleOutputRequest;
703 CSRSS_FLUSH_INPUT_BUFFER_REQUEST FlushInputBufferRequest;
704 CSRSS_SCROLL_CONSOLE_SCREEN_BUFFER_REQUEST
705 ScrollConsoleScreenBufferRequest;
706 CSRSS_READ_CONSOLE_OUTPUT_CHAR_REQUEST ReadConsoleOutputCharRequest;
707 CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REQUEST ReadConsoleOutputAttribRequest;
708 CSRSS_GET_NUM_INPUT_EVENTS_REQUEST GetNumInputEventsRequest;
709 CSRSS_REGISTER_SERVICES_PROCESS_REQUEST RegisterServicesProcessRequest;
710 CSRSS_EXIT_REACTOS_REQUEST ExitReactosRequest;
711 CSRSS_SET_SHUTDOWN_PARAMETERS_REQUEST SetShutdownParametersRequest;
712 CSRSS_GET_SHUTDOWN_PARAMETERS_REQUEST GetShutdownParametersRequest;
713 CSRSS_PEEK_CONSOLE_INPUT_REQUEST PeekConsoleInputRequest;
714 CSRSS_READ_CONSOLE_OUTPUT_REQUEST ReadConsoleOutputRequest;
715 CSRSS_WRITE_CONSOLE_INPUT_REQUEST WriteConsoleInputRequest;
716 CSRSS_CLOSE_HANDLE_REQUEST CloseHandleRequest;
717 CSRSS_VERIFY_HANDLE_REQUEST VerifyHandleRequest;
718 CSRSS_DUPLICATE_HANDLE_REQUEST DuplicateHandleRequest;
719 CSRSS_SETGET_CONSOLE_HW_STATE_REQUEST ConsoleHardwareStateRequest;
720 CSRSS_GET_CONSOLE_WINDOW_REQUEST GetConsoleWindowRequest;
721 CSRSS_CREATE_DESKTOP_REQUEST CreateDesktopRequest;
722 CSRSS_SHOW_DESKTOP_REQUEST ShowDesktopRequest;
723 CSRSS_HIDE_DESKTOP_REQUEST HideDesktopRequest;
724 CSRSS_SET_CONSOLE_ICON_REQUEST SetConsoleIconRequest;
725 CSRSS_SET_LOGON_NOTIFY_WINDOW_REQUEST SetLogonNotifyWindowRequest;
726 CSRSS_REGISTER_LOGON_PROCESS_REQUEST RegisterLogonProcessRequest;
727 CSRSS_GET_CONSOLE_CP_REQUEST GetConsoleCodePage;
728 CSRSS_SET_CONSOLE_CP_REQUEST SetConsoleCodePage;
729 CSRSS_GET_CONSOLE_OUTPUT_CP_REQUEST GetConsoleOutputCodePage;
730 CSRSS_SET_CONSOLE_OUTPUT_CP_REQUEST SetConsoleOutputCodePage;
731 } Data;
732 };
733 };
734 } CSRSS_API_REQUEST, *PCSRSS_API_REQUEST;
735
736 typedef struct
737 {
738 union
739 {
740 LPC_MESSAGE Header;
741 struct
742 {
743 BYTE HeaderReserved[LPC_MESSAGE_BASE_SIZE];
744 NTSTATUS Status;
745 union
746 {
747 CSRSS_CREATE_PROCESS_REPLY CreateProcessReply;
748 CSRSS_CONNECT_PROCESS_REPLY ConnectReply;
749 CSRSS_WRITE_CONSOLE_REPLY WriteConsoleReply;
750 CSRSS_READ_CONSOLE_REPLY ReadConsoleReply;
751 CSRSS_ALLOC_CONSOLE_REPLY AllocConsoleReply;
752 CSRSS_SCREEN_BUFFER_INFO_REPLY ScreenBufferInfoReply;
753 CSRSS_READ_INPUT_REPLY ReadInputReply;
754 CSRSS_WRITE_CONSOLE_OUTPUT_CHAR_REPLY WriteConsoleOutputCharReply;
755 CSRSS_WRITE_CONSOLE_OUTPUT_ATTRIB_REPLY WriteConsoleOutputAttribReply;
756 CSRSS_GET_CURSOR_INFO_REPLY GetCursorInfoReply;
757 CSRSS_GET_CONSOLE_MODE_REPLY GetConsoleModeReply;
758 CSRSS_CREATE_SCREEN_BUFFER_REPLY CreateScreenBufferReply;
759 CSRSS_GET_TITLE_REPLY GetTitleReply;
760 CSRSS_WRITE_CONSOLE_OUTPUT_REPLY WriteConsoleOutputReply;
761 CSRSS_READ_CONSOLE_OUTPUT_CHAR_REPLY ReadConsoleOutputCharReply;
762 CSRSS_READ_CONSOLE_OUTPUT_ATTRIB_REPLY ReadConsoleOutputAttribReply;
763 CSRSS_GET_NUM_INPUT_EVENTS_REPLY GetNumInputEventsReply;
764 CSRSS_SET_SHUTDOWN_PARAMETERS_REPLY SetShutdownParametersReply;
765 CSRSS_GET_SHUTDOWN_PARAMETERS_REPLY GetShutdownParametersReply;
766 CSRSS_PEEK_CONSOLE_INPUT_REPLY PeekConsoleInputReply;
767 CSRSS_READ_CONSOLE_OUTPUT_REPLY ReadConsoleOutputReply;
768 CSRSS_WRITE_CONSOLE_INPUT_REPLY WriteConsoleInputReply;
769 CSRSS_GET_INPUT_HANDLE_REPLY GetInputHandleReply;
770 CSRSS_GET_OUTPUT_HANDLE_REPLY GetOutputHandleReply;
771 CSRSS_DUPLICATE_HANDLE_REPLY DuplicateHandleReply;
772 CSRSS_SETGET_CONSOLE_HW_STATE_REPLY ConsoleHardwareStateReply;
773 CSRSS_GET_CONSOLE_WINDOW_REPLY GetConsoleWindowReply;
774 CSRSS_CREATE_DESKTOP_REPLY CreateDesktopReply;
775 CSRSS_SHOW_DESKTOP_REPLY ShowDesktopReply;
776 CSRSS_HIDE_DESKTOP_REPLY HideDesktopReply;
777 CSRSS_SET_CONSOLE_ICON_REPLY SetConsoleIconReply;
778 CSRSS_SET_LOGON_NOTIFY_WINDOW_REPLY SetLogonNotifyWindowReply;
779 CSRSS_REGISTER_LOGON_PROCESS_REPLY RegisterLogonProcessReply;
780 CSRSS_GET_CONSOLE_CP_REPLY GetConsoleCodePage;
781 CSRSS_SET_CONSOLE_CP_REPLY SetConsoleCodePage;
782 CSRSS_GET_CONSOLE_OUTPUT_CP_REPLY GetConsoleOutputCodePage;
783 CSRSS_SET_CONSOLE_OUTPUT_CP_REPLY SetConsoleOutputCodePage;
784 } Data;
785 };
786 };
787 } CSRSS_API_REPLY, *PCSRSS_API_REPLY;
788
789 #endif /* __INCLUDE_CSRSS_CSRSS_H */