Moved the pthread emulation into the main binary so that we don't need
[wine] / include / wine / server_protocol.h
1 /*
2  * Wine server protocol definitions
3  *
4  * This file is automatically generated; DO NO EDIT!
5  * Edit server/protocol.def instead and re-run tools/make_requests
6  */
7
8 #ifndef __WINE_WINE_SERVER_PROTOCOL_H
9 #define __WINE_WINE_SERVER_PROTOCOL_H
10
11 #include <stdarg.h>
12 #include <stdlib.h>
13 #include <time.h>
14
15 #include <windef.h>
16 #include <winbase.h>
17
18 struct request_header
19 {
20     int          req;
21     size_t       request_size;
22     size_t       reply_size;
23 };
24
25 struct reply_header
26 {
27     unsigned int error;
28     size_t       reply_size;
29 };
30
31
32
33 struct request_max_size
34 {
35     int pad[16];
36 };
37
38 typedef void *obj_handle_t;
39 typedef void *user_handle_t;
40 typedef unsigned short atom_t;
41 typedef unsigned int process_id_t;
42 typedef unsigned int thread_id_t;
43
44 #define FIRST_USER_HANDLE 0x0020
45 #define LAST_USER_HANDLE  0xffef
46
47
48
49 struct debug_event_exception
50 {
51     EXCEPTION_RECORD record;
52     int              first;
53 };
54 struct debug_event_create_thread
55 {
56     obj_handle_t handle;
57     void        *teb;
58     void        *start;
59 };
60 struct debug_event_create_process
61 {
62     obj_handle_t file;
63     obj_handle_t process;
64     obj_handle_t thread;
65     void        *base;
66     int          dbg_offset;
67     int          dbg_size;
68     void        *teb;
69     void        *start;
70     void        *name;
71     int          unicode;
72 };
73 struct debug_event_exit
74 {
75     int          exit_code;
76 };
77 struct debug_event_load_dll
78 {
79     obj_handle_t handle;
80     void        *base;
81     int          dbg_offset;
82     int          dbg_size;
83     void        *name;
84     int          unicode;
85 };
86 struct debug_event_unload_dll
87 {
88     void       *base;
89 };
90 struct debug_event_output_string
91 {
92     void       *string;
93     int         unicode;
94     int         length;
95 };
96 struct debug_event_rip_info
97 {
98     int         error;
99     int         type;
100 };
101 union debug_event_data
102 {
103     struct debug_event_exception      exception;
104     struct debug_event_create_thread  create_thread;
105     struct debug_event_create_process create_process;
106     struct debug_event_exit           exit;
107     struct debug_event_load_dll       load_dll;
108     struct debug_event_unload_dll     unload_dll;
109     struct debug_event_output_string  output_string;
110     struct debug_event_rip_info       rip_info;
111 };
112
113
114 typedef struct
115 {
116     int                      code;
117     union debug_event_data   info;
118 } debug_event_t;
119
120
121 struct send_fd
122 {
123     thread_id_t tid;
124     int         fd;
125 };
126
127
128 struct wake_up_reply
129 {
130     void *cookie;
131     int   signaled;
132 };
133
134
135 typedef struct
136 {
137     int            sec;
138     int            usec;
139 } abs_time_t;
140
141
142 typedef struct
143 {
144     atom_t         atom;
145     short          string;
146     obj_handle_t   handle;
147 } property_data_t;
148
149
150 typedef struct
151 {
152     int  left;
153     int  top;
154     int  right;
155     int  bottom;
156 } rectangle_t;
157
158
159 typedef struct
160 {
161     WCHAR          ch;
162     unsigned short attr;
163 } char_info_t;
164
165
166
167
168
169 struct new_process_request
170 {
171     struct request_header __header;
172     int          inherit_all;
173     int          create_flags;
174     int          unix_pid;
175     obj_handle_t exe_file;
176     obj_handle_t hstdin;
177     obj_handle_t hstdout;
178     obj_handle_t hstderr;
179     /* VARARG(info,startup_info); */
180 };
181 struct new_process_reply
182 {
183     struct reply_header __header;
184     obj_handle_t info;
185 };
186
187
188
189 struct get_new_process_info_request
190 {
191     struct request_header __header;
192     obj_handle_t info;
193     int          pinherit;
194     int          tinherit;
195 };
196 struct get_new_process_info_reply
197 {
198     struct reply_header __header;
199     process_id_t pid;
200     obj_handle_t phandle;
201     thread_id_t  tid;
202     obj_handle_t thandle;
203     int          success;
204 };
205
206
207
208 struct new_thread_request
209 {
210     struct request_header __header;
211     int          suspend;
212     int          inherit;
213     int          request_fd;
214 };
215 struct new_thread_reply
216 {
217     struct reply_header __header;
218     thread_id_t  tid;
219     obj_handle_t handle;
220 };
221
222
223
224 struct boot_done_request
225 {
226     struct request_header __header;
227     int          debug_level;
228 };
229 struct boot_done_reply
230 {
231     struct reply_header __header;
232 };
233
234
235
236 struct init_process_request
237 {
238     struct request_header __header;
239     void*        ldt_copy;
240 };
241 struct init_process_reply
242 {
243     struct reply_header __header;
244     int          create_flags;
245     unsigned int server_start;
246     size_t       info_size;
247     obj_handle_t exe_file;
248     obj_handle_t hstdin;
249     obj_handle_t hstdout;
250     obj_handle_t hstderr;
251 };
252
253
254
255 struct get_startup_info_request
256 {
257     struct request_header __header;
258 };
259 struct get_startup_info_reply
260 {
261     struct reply_header __header;
262     /* VARARG(info,startup_info); */
263 };
264
265
266
267 struct init_process_done_request
268 {
269     struct request_header __header;
270     void*        module;
271     size_t       module_size;
272     void*        entry;
273     void*        name;
274     obj_handle_t exe_file;
275     int          gui;
276     /* VARARG(filename,unicode_str); */
277 };
278 struct init_process_done_reply
279 {
280     struct reply_header __header;
281     int          debugged;
282 };
283
284
285
286 struct init_thread_request
287 {
288     struct request_header __header;
289     int          unix_pid;
290     int          unix_tid;
291     void*        teb;
292     void*        entry;
293     int          reply_fd;
294     int          wait_fd;
295 };
296 struct init_thread_reply
297 {
298     struct reply_header __header;
299     process_id_t pid;
300     thread_id_t  tid;
301     int          boot;
302     int          version;
303 };
304
305
306
307 struct terminate_process_request
308 {
309     struct request_header __header;
310     obj_handle_t handle;
311     int          exit_code;
312 };
313 struct terminate_process_reply
314 {
315     struct reply_header __header;
316     int          self;
317 };
318
319
320
321 struct terminate_thread_request
322 {
323     struct request_header __header;
324     obj_handle_t handle;
325     int          exit_code;
326 };
327 struct terminate_thread_reply
328 {
329     struct reply_header __header;
330     int          self;
331     int          last;
332 };
333
334
335
336 struct get_process_info_request
337 {
338     struct request_header __header;
339     obj_handle_t handle;
340 };
341 struct get_process_info_reply
342 {
343     struct reply_header __header;
344     process_id_t pid;
345     int          debugged;
346     int          exit_code;
347     int          priority;
348     int          process_affinity;
349     int          system_affinity;
350 };
351
352
353
354 struct set_process_info_request
355 {
356     struct request_header __header;
357     obj_handle_t handle;
358     int          mask;
359     int          priority;
360     int          affinity;
361 };
362 struct set_process_info_reply
363 {
364     struct reply_header __header;
365 };
366 #define SET_PROCESS_INFO_PRIORITY 0x01
367 #define SET_PROCESS_INFO_AFFINITY 0x02
368
369
370
371 struct get_thread_info_request
372 {
373     struct request_header __header;
374     obj_handle_t handle;
375     thread_id_t  tid_in;
376 };
377 struct get_thread_info_reply
378 {
379     struct reply_header __header;
380     process_id_t pid;
381     thread_id_t  tid;
382     void*        teb;
383     int          exit_code;
384     int          priority;
385     int          affinity;
386     time_t       creation_time;
387     time_t       exit_time;
388 };
389
390
391
392 struct set_thread_info_request
393 {
394     struct request_header __header;
395     obj_handle_t handle;
396     int          mask;
397     int          priority;
398     int          affinity;
399 };
400 struct set_thread_info_reply
401 {
402     struct reply_header __header;
403 };
404 #define SET_THREAD_INFO_PRIORITY 0x01
405 #define SET_THREAD_INFO_AFFINITY 0x02
406
407
408
409 struct get_dll_info_request
410 {
411     struct request_header __header;
412     obj_handle_t handle;
413     void*        base_address;
414 };
415 struct get_dll_info_reply
416 {
417     struct reply_header __header;
418     size_t       size;
419     void*        entry_point;
420     /* VARARG(filename,unicode_str); */
421 };
422
423
424
425 struct suspend_thread_request
426 {
427     struct request_header __header;
428     obj_handle_t handle;
429 };
430 struct suspend_thread_reply
431 {
432     struct reply_header __header;
433     int          count;
434 };
435
436
437
438 struct resume_thread_request
439 {
440     struct request_header __header;
441     obj_handle_t handle;
442 };
443 struct resume_thread_reply
444 {
445     struct reply_header __header;
446     int          count;
447 };
448
449
450
451 struct load_dll_request
452 {
453     struct request_header __header;
454     obj_handle_t handle;
455     void*        base;
456     size_t       size;
457     int          dbg_offset;
458     int          dbg_size;
459     void*        name;
460     /* VARARG(filename,unicode_str); */
461 };
462 struct load_dll_reply
463 {
464     struct reply_header __header;
465 };
466
467
468
469 struct unload_dll_request
470 {
471     struct request_header __header;
472     void*        base;
473 };
474 struct unload_dll_reply
475 {
476     struct reply_header __header;
477 };
478
479
480
481 struct queue_apc_request
482 {
483     struct request_header __header;
484     obj_handle_t handle;
485     int          user;
486     void*        func;
487     void*        arg1;
488     void*        arg2;
489     void*        arg3;
490 };
491 struct queue_apc_reply
492 {
493     struct reply_header __header;
494 };
495
496
497
498 struct get_apc_request
499 {
500     struct request_header __header;
501     int          alertable;
502 };
503 struct get_apc_reply
504 {
505     struct reply_header __header;
506     void*        func;
507     int          type;
508     void*        arg1;
509     void*        arg2;
510     void*        arg3;
511 };
512 enum apc_type { APC_NONE, APC_USER, APC_TIMER, APC_ASYNC, APC_ASYNC_IO };
513
514
515
516 struct close_handle_request
517 {
518     struct request_header __header;
519     obj_handle_t handle;
520 };
521 struct close_handle_reply
522 {
523     struct reply_header __header;
524     int          fd;
525 };
526
527
528
529 struct set_handle_info_request
530 {
531     struct request_header __header;
532     obj_handle_t handle;
533     int          flags;
534     int          mask;
535     int          fd;
536 };
537 struct set_handle_info_reply
538 {
539     struct reply_header __header;
540     int          old_flags;
541     int          cur_fd;
542 };
543
544
545
546 struct dup_handle_request
547 {
548     struct request_header __header;
549     obj_handle_t src_process;
550     obj_handle_t src_handle;
551     obj_handle_t dst_process;
552     unsigned int access;
553     int          inherit;
554     int          options;
555 };
556 struct dup_handle_reply
557 {
558     struct reply_header __header;
559     obj_handle_t handle;
560     int          fd;
561 };
562 #define DUP_HANDLE_CLOSE_SOURCE  DUPLICATE_CLOSE_SOURCE
563 #define DUP_HANDLE_SAME_ACCESS   DUPLICATE_SAME_ACCESS
564 #define DUP_HANDLE_MAKE_GLOBAL   0x80000000
565
566
567
568 struct open_process_request
569 {
570     struct request_header __header;
571     process_id_t pid;
572     unsigned int access;
573     int          inherit;
574 };
575 struct open_process_reply
576 {
577     struct reply_header __header;
578     obj_handle_t handle;
579 };
580
581
582
583 struct open_thread_request
584 {
585     struct request_header __header;
586     thread_id_t  tid;
587     unsigned int access;
588     int          inherit;
589 };
590 struct open_thread_reply
591 {
592     struct reply_header __header;
593     obj_handle_t handle;
594 };
595
596
597
598 struct select_request
599 {
600     struct request_header __header;
601     int          flags;
602     void*        cookie;
603     abs_time_t   timeout;
604     /* VARARG(handles,handles); */
605 };
606 struct select_reply
607 {
608     struct reply_header __header;
609 };
610 #define SELECT_ALL           1
611 #define SELECT_ALERTABLE     2
612 #define SELECT_INTERRUPTIBLE 4
613 #define SELECT_TIMEOUT       8
614
615
616
617 struct create_event_request
618 {
619     struct request_header __header;
620     int          manual_reset;
621     int          initial_state;
622     int          inherit;
623     /* VARARG(name,unicode_str); */
624 };
625 struct create_event_reply
626 {
627     struct reply_header __header;
628     obj_handle_t handle;
629 };
630
631
632 struct event_op_request
633 {
634     struct request_header __header;
635     obj_handle_t  handle;
636     int           op;
637 };
638 struct event_op_reply
639 {
640     struct reply_header __header;
641 };
642 enum event_op { PULSE_EVENT, SET_EVENT, RESET_EVENT };
643
644
645
646 struct open_event_request
647 {
648     struct request_header __header;
649     unsigned int access;
650     int          inherit;
651     /* VARARG(name,unicode_str); */
652 };
653 struct open_event_reply
654 {
655     struct reply_header __header;
656     obj_handle_t handle;
657 };
658
659
660
661 struct create_mutex_request
662 {
663     struct request_header __header;
664     int          owned;
665     int          inherit;
666     /* VARARG(name,unicode_str); */
667 };
668 struct create_mutex_reply
669 {
670     struct reply_header __header;
671     obj_handle_t handle;
672 };
673
674
675
676 struct release_mutex_request
677 {
678     struct request_header __header;
679     obj_handle_t handle;
680 };
681 struct release_mutex_reply
682 {
683     struct reply_header __header;
684 };
685
686
687
688 struct open_mutex_request
689 {
690     struct request_header __header;
691     unsigned int access;
692     int          inherit;
693     /* VARARG(name,unicode_str); */
694 };
695 struct open_mutex_reply
696 {
697     struct reply_header __header;
698     obj_handle_t handle;
699 };
700
701
702
703 struct create_semaphore_request
704 {
705     struct request_header __header;
706     unsigned int initial;
707     unsigned int max;
708     int          inherit;
709     /* VARARG(name,unicode_str); */
710 };
711 struct create_semaphore_reply
712 {
713     struct reply_header __header;
714     obj_handle_t handle;
715 };
716
717
718
719 struct release_semaphore_request
720 {
721     struct request_header __header;
722     obj_handle_t handle;
723     unsigned int count;
724 };
725 struct release_semaphore_reply
726 {
727     struct reply_header __header;
728     unsigned int prev_count;
729 };
730
731
732
733 struct open_semaphore_request
734 {
735     struct request_header __header;
736     unsigned int access;
737     int          inherit;
738     /* VARARG(name,unicode_str); */
739 };
740 struct open_semaphore_reply
741 {
742     struct reply_header __header;
743     obj_handle_t handle;
744 };
745
746
747
748 struct create_file_request
749 {
750     struct request_header __header;
751     unsigned int access;
752     int          inherit;
753     unsigned int sharing;
754     int          create;
755     unsigned int attrs;
756     int          removable;
757     /* VARARG(filename,string); */
758 };
759 struct create_file_reply
760 {
761     struct reply_header __header;
762     obj_handle_t handle;
763 };
764
765
766
767 struct alloc_file_handle_request
768 {
769     struct request_header __header;
770     unsigned int access;
771     int          inherit;
772     int          fd;
773 };
774 struct alloc_file_handle_reply
775 {
776     struct reply_header __header;
777     obj_handle_t handle;
778 };
779
780
781
782 struct get_handle_fd_request
783 {
784     struct request_header __header;
785     obj_handle_t handle;
786     unsigned int access;
787 };
788 struct get_handle_fd_reply
789 {
790     struct reply_header __header;
791     int          fd;
792     int          type;
793     int          flags;
794 };
795 enum fd_type
796 {
797     FD_TYPE_INVALID,
798     FD_TYPE_DEFAULT,
799     FD_TYPE_SOCKET,
800     FD_TYPE_SMB
801 };
802 #define FD_FLAG_OVERLAPPED         0x01
803 #define FD_FLAG_TIMEOUT            0x02
804 #define FD_FLAG_RECV_SHUTDOWN      0x04
805 #define FD_FLAG_SEND_SHUTDOWN      0x08
806
807
808 struct set_file_pointer_request
809 {
810     struct request_header __header;
811     obj_handle_t handle;
812     int          low;
813     int          high;
814     int          whence;
815 };
816 struct set_file_pointer_reply
817 {
818     struct reply_header __header;
819     int          new_low;
820     int          new_high;
821 };
822
823
824
825 struct truncate_file_request
826 {
827     struct request_header __header;
828     obj_handle_t handle;
829 };
830 struct truncate_file_reply
831 {
832     struct reply_header __header;
833 };
834
835
836
837 struct set_file_time_request
838 {
839     struct request_header __header;
840     obj_handle_t handle;
841     time_t       access_time;
842     time_t       write_time;
843 };
844 struct set_file_time_reply
845 {
846     struct reply_header __header;
847 };
848
849
850
851 struct flush_file_request
852 {
853     struct request_header __header;
854     obj_handle_t handle;
855 };
856 struct flush_file_reply
857 {
858     struct reply_header __header;
859     obj_handle_t event;
860 };
861
862
863
864 struct get_file_info_request
865 {
866     struct request_header __header;
867     obj_handle_t handle;
868 };
869 struct get_file_info_reply
870 {
871     struct reply_header __header;
872     int          type;
873     int          attr;
874     time_t       access_time;
875     time_t       write_time;
876     time_t       change_time;
877     int          size_high;
878     int          size_low;
879     int          alloc_high;
880     int          alloc_low;
881     int          links;
882     int          index_high;
883     int          index_low;
884     unsigned int serial;
885 };
886
887
888
889 struct lock_file_request
890 {
891     struct request_header __header;
892     obj_handle_t handle;
893     unsigned int offset_low;
894     unsigned int offset_high;
895     unsigned int count_low;
896     unsigned int count_high;
897     int          shared;
898     int          wait;
899 };
900 struct lock_file_reply
901 {
902     struct reply_header __header;
903     obj_handle_t handle;
904     int          overlapped;
905 };
906
907
908
909 struct unlock_file_request
910 {
911     struct request_header __header;
912     obj_handle_t handle;
913     unsigned int offset_low;
914     unsigned int offset_high;
915     unsigned int count_low;
916     unsigned int count_high;
917 };
918 struct unlock_file_reply
919 {
920     struct reply_header __header;
921 };
922
923
924
925 struct create_socket_request
926 {
927     struct request_header __header;
928     unsigned int access;
929     int          inherit;
930     int          family;
931     int          type;
932     int          protocol;
933     unsigned int flags;
934 };
935 struct create_socket_reply
936 {
937     struct reply_header __header;
938     obj_handle_t handle;
939 };
940
941
942
943 struct accept_socket_request
944 {
945     struct request_header __header;
946     obj_handle_t lhandle;
947     unsigned int access;
948     int          inherit;
949 };
950 struct accept_socket_reply
951 {
952     struct reply_header __header;
953     obj_handle_t handle;
954 };
955
956
957
958 struct set_socket_event_request
959 {
960     struct request_header __header;
961     obj_handle_t  handle;
962     unsigned int  mask;
963     obj_handle_t  event;
964     user_handle_t window;
965     unsigned int  msg;
966 };
967 struct set_socket_event_reply
968 {
969     struct reply_header __header;
970 };
971
972
973
974 struct get_socket_event_request
975 {
976     struct request_header __header;
977     obj_handle_t handle;
978     int          service;
979     obj_handle_t c_event;
980 };
981 struct get_socket_event_reply
982 {
983     struct reply_header __header;
984     unsigned int mask;
985     unsigned int pmask;
986     unsigned int state;
987     /* VARARG(errors,ints); */
988 };
989
990
991
992 struct enable_socket_event_request
993 {
994     struct request_header __header;
995     obj_handle_t handle;
996     unsigned int mask;
997     unsigned int sstate;
998     unsigned int cstate;
999 };
1000 struct enable_socket_event_reply
1001 {
1002     struct reply_header __header;
1003 };
1004
1005 struct set_socket_deferred_request
1006 {
1007     struct request_header __header;
1008     obj_handle_t handle;
1009     obj_handle_t deferred;
1010 };
1011 struct set_socket_deferred_reply
1012 {
1013     struct reply_header __header;
1014 };
1015
1016
1017 struct alloc_console_request
1018 {
1019     struct request_header __header;
1020     unsigned int access;
1021     int          inherit;
1022     process_id_t pid;
1023 };
1024 struct alloc_console_reply
1025 {
1026     struct reply_header __header;
1027     obj_handle_t handle_in;
1028     obj_handle_t event;
1029 };
1030
1031
1032
1033 struct free_console_request
1034 {
1035     struct request_header __header;
1036 };
1037 struct free_console_reply
1038 {
1039     struct reply_header __header;
1040 };
1041
1042
1043 #define CONSOLE_RENDERER_NONE_EVENT        0x00
1044 #define CONSOLE_RENDERER_TITLE_EVENT       0x01
1045 #define CONSOLE_RENDERER_ACTIVE_SB_EVENT   0x02
1046 #define CONSOLE_RENDERER_SB_RESIZE_EVENT   0x03
1047 #define CONSOLE_RENDERER_UPDATE_EVENT      0x04
1048 #define CONSOLE_RENDERER_CURSOR_POS_EVENT  0x05
1049 #define CONSOLE_RENDERER_CURSOR_GEOM_EVENT 0x06
1050 #define CONSOLE_RENDERER_DISPLAY_EVENT     0x07
1051 #define CONSOLE_RENDERER_EXIT_EVENT        0x08
1052 struct console_renderer_event
1053 {
1054     short event;
1055     union
1056     {
1057         struct update
1058         {
1059             short top;
1060             short bottom;
1061         } update;
1062         struct resize
1063         {
1064             short width;
1065             short height;
1066         } resize;
1067         struct cursor_pos
1068         {
1069             short x;
1070             short y;
1071         } cursor_pos;
1072         struct cursor_geom
1073         {
1074             short visible;
1075             short size;
1076         } cursor_geom;
1077         struct display
1078         {
1079             short left;
1080             short top;
1081             short width;
1082             short height;
1083         } display;
1084     } u;
1085 };
1086
1087
1088 struct get_console_renderer_events_request
1089 {
1090     struct request_header __header;
1091     obj_handle_t handle;
1092 };
1093 struct get_console_renderer_events_reply
1094 {
1095     struct reply_header __header;
1096     /* VARARG(data,bytes); */
1097 };
1098
1099
1100
1101 struct open_console_request
1102 {
1103     struct request_header __header;
1104     int          from;
1105
1106     unsigned int access;
1107     int          inherit;
1108     int          share;
1109 };
1110 struct open_console_reply
1111 {
1112     struct reply_header __header;
1113     obj_handle_t handle;
1114 };
1115
1116
1117
1118 struct get_console_wait_event_request
1119 {
1120     struct request_header __header;
1121 };
1122 struct get_console_wait_event_reply
1123 {
1124     struct reply_header __header;
1125     obj_handle_t handle;
1126 };
1127
1128
1129 struct get_console_mode_request
1130 {
1131     struct request_header __header;
1132     obj_handle_t handle;
1133 };
1134 struct get_console_mode_reply
1135 {
1136     struct reply_header __header;
1137     int          mode;
1138 };
1139
1140
1141
1142 struct set_console_mode_request
1143 {
1144     struct request_header __header;
1145     obj_handle_t handle;
1146     int          mode;
1147 };
1148 struct set_console_mode_reply
1149 {
1150     struct reply_header __header;
1151 };
1152
1153
1154
1155 struct set_console_input_info_request
1156 {
1157     struct request_header __header;
1158     obj_handle_t handle;
1159     int          mask;
1160     obj_handle_t active_sb;
1161     int          history_mode;
1162     int          history_size;
1163     int          edition_mode;
1164     /* VARARG(title,unicode_str); */
1165 };
1166 struct set_console_input_info_reply
1167 {
1168     struct reply_header __header;
1169 };
1170 #define SET_CONSOLE_INPUT_INFO_ACTIVE_SB        0x01
1171 #define SET_CONSOLE_INPUT_INFO_TITLE            0x02
1172 #define SET_CONSOLE_INPUT_INFO_HISTORY_MODE     0x04
1173 #define SET_CONSOLE_INPUT_INFO_HISTORY_SIZE     0x08
1174 #define SET_CONSOLE_INPUT_INFO_EDITION_MODE     0x10
1175
1176
1177
1178 struct get_console_input_info_request
1179 {
1180     struct request_header __header;
1181     obj_handle_t handle;
1182 };
1183 struct get_console_input_info_reply
1184 {
1185     struct reply_header __header;
1186     int          history_mode;
1187     int          history_size;
1188     int          history_index;
1189     int          edition_mode;
1190     /* VARARG(title,unicode_str); */
1191 };
1192
1193
1194
1195 struct append_console_input_history_request
1196 {
1197     struct request_header __header;
1198     obj_handle_t handle;
1199     /* VARARG(line,unicode_str); */
1200 };
1201 struct append_console_input_history_reply
1202 {
1203     struct reply_header __header;
1204 };
1205
1206
1207
1208 struct get_console_input_history_request
1209 {
1210     struct request_header __header;
1211     obj_handle_t handle;
1212     int          index;
1213 };
1214 struct get_console_input_history_reply
1215 {
1216     struct reply_header __header;
1217     int          total;
1218     /* VARARG(line,unicode_str); */
1219 };
1220
1221
1222
1223 struct create_console_output_request
1224 {
1225     struct request_header __header;
1226     obj_handle_t handle_in;
1227     int          access;
1228     int          share;
1229     int          inherit;
1230 };
1231 struct create_console_output_reply
1232 {
1233     struct reply_header __header;
1234     obj_handle_t handle_out;
1235 };
1236
1237
1238
1239 struct set_console_output_info_request
1240 {
1241     struct request_header __header;
1242     obj_handle_t handle;
1243     int          mask;
1244     short int    cursor_size;
1245     short int    cursor_visible;
1246     short int    cursor_x;
1247     short int    cursor_y;
1248     short int    width;
1249     short int    height;
1250     short int    attr;
1251     short int    win_left;
1252     short int    win_top;
1253     short int    win_right;
1254     short int    win_bottom;
1255     short int    max_width;
1256     short int    max_height;
1257 };
1258 struct set_console_output_info_reply
1259 {
1260     struct reply_header __header;
1261 };
1262 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_GEOM     0x01
1263 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_POS      0x02
1264 #define SET_CONSOLE_OUTPUT_INFO_SIZE            0x04
1265 #define SET_CONSOLE_OUTPUT_INFO_ATTR            0x08
1266 #define SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW  0x10
1267 #define SET_CONSOLE_OUTPUT_INFO_MAX_SIZE        0x20
1268
1269
1270
1271 struct get_console_output_info_request
1272 {
1273     struct request_header __header;
1274     obj_handle_t handle;
1275 };
1276 struct get_console_output_info_reply
1277 {
1278     struct reply_header __header;
1279     short int    cursor_size;
1280     short int    cursor_visible;
1281     short int    cursor_x;
1282     short int    cursor_y;
1283     short int    width;
1284     short int    height;
1285     short int    attr;
1286     short int    win_left;
1287     short int    win_top;
1288     short int    win_right;
1289     short int    win_bottom;
1290     short int    max_width;
1291     short int    max_height;
1292 };
1293
1294
1295 struct write_console_input_request
1296 {
1297     struct request_header __header;
1298     obj_handle_t handle;
1299     /* VARARG(rec,input_records); */
1300 };
1301 struct write_console_input_reply
1302 {
1303     struct reply_header __header;
1304     int          written;
1305 };
1306
1307
1308
1309 struct read_console_input_request
1310 {
1311     struct request_header __header;
1312     obj_handle_t handle;
1313     int          flush;
1314 };
1315 struct read_console_input_reply
1316 {
1317     struct reply_header __header;
1318     int          read;
1319     /* VARARG(rec,input_records); */
1320 };
1321
1322
1323
1324 struct write_console_output_request
1325 {
1326     struct request_header __header;
1327     obj_handle_t handle;
1328     int          x;
1329     int          y;
1330     int          mode;
1331     int          wrap;
1332     /* VARARG(data,bytes); */
1333 };
1334 struct write_console_output_reply
1335 {
1336     struct reply_header __header;
1337     int          written;
1338     int          width;
1339     int          height;
1340 };
1341 enum char_info_mode
1342 {
1343     CHAR_INFO_MODE_TEXT,
1344     CHAR_INFO_MODE_ATTR,
1345     CHAR_INFO_MODE_TEXTATTR,
1346     CHAR_INFO_MODE_TEXTSTDATTR
1347 };
1348
1349
1350
1351 struct fill_console_output_request
1352 {
1353     struct request_header __header;
1354     obj_handle_t handle;
1355     int          x;
1356     int          y;
1357     int          mode;
1358     int          count;
1359     int          wrap;
1360     char_info_t  data;
1361 };
1362 struct fill_console_output_reply
1363 {
1364     struct reply_header __header;
1365     int          written;
1366 };
1367
1368
1369
1370 struct read_console_output_request
1371 {
1372     struct request_header __header;
1373     obj_handle_t handle;
1374     int          x;
1375     int          y;
1376     int          mode;
1377     int          wrap;
1378 };
1379 struct read_console_output_reply
1380 {
1381     struct reply_header __header;
1382     int          width;
1383     int          height;
1384     /* VARARG(data,bytes); */
1385 };
1386
1387
1388
1389 struct move_console_output_request
1390 {
1391     struct request_header __header;
1392     obj_handle_t handle;
1393     short int    x_src;
1394     short int    y_src;
1395     short int    x_dst;
1396     short int    y_dst;
1397     short int    w;
1398     short int    h;
1399 };
1400 struct move_console_output_reply
1401 {
1402     struct reply_header __header;
1403 };
1404
1405
1406
1407 struct send_console_signal_request
1408 {
1409     struct request_header __header;
1410     int          signal;
1411     process_id_t group_id;
1412 };
1413 struct send_console_signal_reply
1414 {
1415     struct reply_header __header;
1416 };
1417
1418
1419
1420 struct create_change_notification_request
1421 {
1422     struct request_header __header;
1423     obj_handle_t handle;
1424     int          subtree;
1425     unsigned int filter;
1426 };
1427 struct create_change_notification_reply
1428 {
1429     struct reply_header __header;
1430     obj_handle_t handle;
1431 };
1432
1433
1434
1435 struct next_change_notification_request
1436 {
1437     struct request_header __header;
1438     obj_handle_t handle;
1439 };
1440 struct next_change_notification_reply
1441 {
1442     struct reply_header __header;
1443 };
1444
1445
1446 struct create_mapping_request
1447 {
1448     struct request_header __header;
1449     int          size_high;
1450     int          size_low;
1451     int          protect;
1452     unsigned int access;
1453     int          inherit;
1454     obj_handle_t file_handle;
1455     /* VARARG(name,unicode_str); */
1456 };
1457 struct create_mapping_reply
1458 {
1459     struct reply_header __header;
1460     obj_handle_t handle;
1461 };
1462
1463 #define VPROT_READ       0x01
1464 #define VPROT_WRITE      0x02
1465 #define VPROT_EXEC       0x04
1466 #define VPROT_WRITECOPY  0x08
1467 #define VPROT_GUARD      0x10
1468 #define VPROT_NOCACHE    0x20
1469 #define VPROT_COMMITTED  0x40
1470 #define VPROT_IMAGE      0x80
1471
1472
1473
1474 struct open_mapping_request
1475 {
1476     struct request_header __header;
1477     unsigned int access;
1478     int          inherit;
1479     /* VARARG(name,unicode_str); */
1480 };
1481 struct open_mapping_reply
1482 {
1483     struct reply_header __header;
1484     obj_handle_t handle;
1485 };
1486
1487
1488
1489 struct get_mapping_info_request
1490 {
1491     struct request_header __header;
1492     obj_handle_t handle;
1493 };
1494 struct get_mapping_info_reply
1495 {
1496     struct reply_header __header;
1497     int          size_high;
1498     int          size_low;
1499     int          protect;
1500     int          header_size;
1501     void*        base;
1502     obj_handle_t shared_file;
1503     int          shared_size;
1504     int          removable;
1505 };
1506
1507
1508
1509 struct create_device_request
1510 {
1511     struct request_header __header;
1512     unsigned int access;
1513     int          inherit;
1514     int          id;
1515 };
1516 struct create_device_reply
1517 {
1518     struct reply_header __header;
1519     obj_handle_t handle;
1520 };
1521
1522
1523
1524 struct get_device_id_request
1525 {
1526     struct request_header __header;
1527     obj_handle_t handle;
1528 };
1529 struct get_device_id_reply
1530 {
1531     struct reply_header __header;
1532     int          id;
1533 };
1534
1535
1536 #define SNAP_HEAPLIST   0x00000001
1537 #define SNAP_PROCESS    0x00000002
1538 #define SNAP_THREAD     0x00000004
1539 #define SNAP_MODULE     0x00000008
1540
1541 struct create_snapshot_request
1542 {
1543     struct request_header __header;
1544     int          inherit;
1545     int          flags;
1546     process_id_t pid;
1547 };
1548 struct create_snapshot_reply
1549 {
1550     struct reply_header __header;
1551     obj_handle_t handle;
1552 };
1553
1554
1555
1556 struct next_process_request
1557 {
1558     struct request_header __header;
1559     obj_handle_t handle;
1560     int          reset;
1561 };
1562 struct next_process_reply
1563 {
1564     struct reply_header __header;
1565     int          count;
1566     process_id_t pid;
1567     process_id_t ppid;
1568     void*        heap;
1569     void*        module;
1570     int          threads;
1571     int          priority;
1572     int          handles;
1573     /* VARARG(filename,unicode_str); */
1574 };
1575
1576
1577
1578 struct next_thread_request
1579 {
1580     struct request_header __header;
1581     obj_handle_t handle;
1582     int          reset;
1583 };
1584 struct next_thread_reply
1585 {
1586     struct reply_header __header;
1587     int          count;
1588     process_id_t pid;
1589     thread_id_t  tid;
1590     int          base_pri;
1591     int          delta_pri;
1592 };
1593
1594
1595
1596 struct next_module_request
1597 {
1598     struct request_header __header;
1599     obj_handle_t handle;
1600     int          reset;
1601 };
1602 struct next_module_reply
1603 {
1604     struct reply_header __header;
1605     process_id_t pid;
1606     void*        base;
1607     size_t       size;
1608     /* VARARG(filename,unicode_str); */
1609 };
1610
1611
1612
1613 struct wait_debug_event_request
1614 {
1615     struct request_header __header;
1616     int           get_handle;
1617 };
1618 struct wait_debug_event_reply
1619 {
1620     struct reply_header __header;
1621     process_id_t  pid;
1622     thread_id_t   tid;
1623     obj_handle_t  wait;
1624     /* VARARG(event,debug_event); */
1625 };
1626
1627
1628
1629 struct queue_exception_event_request
1630 {
1631     struct request_header __header;
1632     int              first;
1633     /* VARARG(record,exc_event); */
1634 };
1635 struct queue_exception_event_reply
1636 {
1637     struct reply_header __header;
1638     obj_handle_t     handle;
1639 };
1640
1641
1642
1643 struct get_exception_status_request
1644 {
1645     struct request_header __header;
1646     obj_handle_t     handle;
1647 };
1648 struct get_exception_status_reply
1649 {
1650     struct reply_header __header;
1651     int              status;
1652     /* VARARG(context,context); */
1653 };
1654
1655
1656
1657 struct output_debug_string_request
1658 {
1659     struct request_header __header;
1660     void*         string;
1661     int           unicode;
1662     int           length;
1663 };
1664 struct output_debug_string_reply
1665 {
1666     struct reply_header __header;
1667 };
1668
1669
1670
1671 struct continue_debug_event_request
1672 {
1673     struct request_header __header;
1674     process_id_t pid;
1675     thread_id_t  tid;
1676     int          status;
1677 };
1678 struct continue_debug_event_reply
1679 {
1680     struct reply_header __header;
1681 };
1682
1683
1684
1685 struct debug_process_request
1686 {
1687     struct request_header __header;
1688     process_id_t pid;
1689     int          attach;
1690 };
1691 struct debug_process_reply
1692 {
1693     struct reply_header __header;
1694 };
1695
1696
1697
1698 struct debug_break_request
1699 {
1700     struct request_header __header;
1701     obj_handle_t handle;
1702 };
1703 struct debug_break_reply
1704 {
1705     struct reply_header __header;
1706     int          self;
1707 };
1708
1709
1710
1711 struct set_debugger_kill_on_exit_request
1712 {
1713     struct request_header __header;
1714     int          kill_on_exit;
1715 };
1716 struct set_debugger_kill_on_exit_reply
1717 {
1718     struct reply_header __header;
1719 };
1720
1721
1722
1723 struct read_process_memory_request
1724 {
1725     struct request_header __header;
1726     obj_handle_t handle;
1727     void*        addr;
1728 };
1729 struct read_process_memory_reply
1730 {
1731     struct reply_header __header;
1732     /* VARARG(data,bytes); */
1733 };
1734
1735
1736
1737 struct write_process_memory_request
1738 {
1739     struct request_header __header;
1740     obj_handle_t handle;
1741     void*        addr;
1742     unsigned int first_mask;
1743     unsigned int last_mask;
1744     /* VARARG(data,bytes); */
1745 };
1746 struct write_process_memory_reply
1747 {
1748     struct reply_header __header;
1749 };
1750
1751
1752
1753 struct create_key_request
1754 {
1755     struct request_header __header;
1756     obj_handle_t parent;
1757     unsigned int access;
1758     unsigned int options;
1759     time_t       modif;
1760     size_t       namelen;
1761     /* VARARG(name,unicode_str,namelen); */
1762     /* VARARG(class,unicode_str); */
1763 };
1764 struct create_key_reply
1765 {
1766     struct reply_header __header;
1767     obj_handle_t hkey;
1768     int          created;
1769 };
1770
1771
1772 struct open_key_request
1773 {
1774     struct request_header __header;
1775     obj_handle_t parent;
1776     unsigned int access;
1777     /* VARARG(name,unicode_str); */
1778 };
1779 struct open_key_reply
1780 {
1781     struct reply_header __header;
1782     obj_handle_t hkey;
1783 };
1784
1785
1786
1787 struct delete_key_request
1788 {
1789     struct request_header __header;
1790     obj_handle_t hkey;
1791 };
1792 struct delete_key_reply
1793 {
1794     struct reply_header __header;
1795 };
1796
1797
1798
1799 struct enum_key_request
1800 {
1801     struct request_header __header;
1802     obj_handle_t hkey;
1803     int          index;
1804     int          info_class;
1805 };
1806 struct enum_key_reply
1807 {
1808     struct reply_header __header;
1809     int          subkeys;
1810     int          max_subkey;
1811     int          max_class;
1812     int          values;
1813     int          max_value;
1814     int          max_data;
1815     time_t       modif;
1816     size_t       total;
1817     size_t       namelen;
1818     /* VARARG(name,unicode_str,namelen); */
1819     /* VARARG(class,unicode_str); */
1820 };
1821
1822
1823
1824 struct set_key_value_request
1825 {
1826     struct request_header __header;
1827     obj_handle_t hkey;
1828     int          type;
1829     size_t       namelen;
1830     /* VARARG(name,unicode_str,namelen); */
1831     /* VARARG(data,bytes); */
1832 };
1833 struct set_key_value_reply
1834 {
1835     struct reply_header __header;
1836 };
1837
1838
1839
1840 struct get_key_value_request
1841 {
1842     struct request_header __header;
1843     obj_handle_t hkey;
1844     /* VARARG(name,unicode_str); */
1845 };
1846 struct get_key_value_reply
1847 {
1848     struct reply_header __header;
1849     int          type;
1850     size_t       total;
1851     /* VARARG(data,bytes); */
1852 };
1853
1854
1855
1856 struct enum_key_value_request
1857 {
1858     struct request_header __header;
1859     obj_handle_t hkey;
1860     int          index;
1861     int          info_class;
1862 };
1863 struct enum_key_value_reply
1864 {
1865     struct reply_header __header;
1866     int          type;
1867     size_t       total;
1868     size_t       namelen;
1869     /* VARARG(name,unicode_str,namelen); */
1870     /* VARARG(data,bytes); */
1871 };
1872
1873
1874
1875 struct delete_key_value_request
1876 {
1877     struct request_header __header;
1878     obj_handle_t hkey;
1879     /* VARARG(name,unicode_str); */
1880 };
1881 struct delete_key_value_reply
1882 {
1883     struct reply_header __header;
1884 };
1885
1886
1887
1888 struct load_registry_request
1889 {
1890     struct request_header __header;
1891     obj_handle_t hkey;
1892     obj_handle_t file;
1893     /* VARARG(name,unicode_str); */
1894 };
1895 struct load_registry_reply
1896 {
1897     struct reply_header __header;
1898 };
1899
1900
1901
1902 struct unload_registry_request
1903 {
1904     struct request_header __header;
1905     obj_handle_t hkey;
1906 };
1907 struct unload_registry_reply
1908 {
1909     struct reply_header __header;
1910 };
1911
1912
1913
1914 struct save_registry_request
1915 {
1916     struct request_header __header;
1917     obj_handle_t hkey;
1918     obj_handle_t file;
1919 };
1920 struct save_registry_reply
1921 {
1922     struct reply_header __header;
1923 };
1924
1925
1926
1927 struct save_registry_atexit_request
1928 {
1929     struct request_header __header;
1930     obj_handle_t hkey;
1931     /* VARARG(file,string); */
1932 };
1933 struct save_registry_atexit_reply
1934 {
1935     struct reply_header __header;
1936 };
1937
1938
1939
1940 struct set_registry_levels_request
1941 {
1942     struct request_header __header;
1943     int          current;
1944     int          saving;
1945     int          period;
1946 };
1947 struct set_registry_levels_reply
1948 {
1949     struct reply_header __header;
1950 };
1951
1952
1953 struct set_registry_notification_request
1954 {
1955     struct request_header __header;
1956     obj_handle_t hkey;
1957     obj_handle_t event;
1958     int          subtree;
1959     unsigned int filter;
1960 };
1961 struct set_registry_notification_reply
1962 {
1963     struct reply_header __header;
1964 };
1965
1966
1967
1968 struct create_timer_request
1969 {
1970     struct request_header __header;
1971     int          inherit;
1972     int          manual;
1973     /* VARARG(name,unicode_str); */
1974 };
1975 struct create_timer_reply
1976 {
1977     struct reply_header __header;
1978     obj_handle_t handle;
1979 };
1980
1981
1982
1983 struct open_timer_request
1984 {
1985     struct request_header __header;
1986     unsigned int access;
1987     int          inherit;
1988     /* VARARG(name,unicode_str); */
1989 };
1990 struct open_timer_reply
1991 {
1992     struct reply_header __header;
1993     obj_handle_t handle;
1994 };
1995
1996
1997 struct set_timer_request
1998 {
1999     struct request_header __header;
2000     obj_handle_t handle;
2001     abs_time_t   expire;
2002     int          period;
2003     void*        callback;
2004     void*        arg;
2005 };
2006 struct set_timer_reply
2007 {
2008     struct reply_header __header;
2009     int          signaled;
2010 };
2011
2012
2013 struct cancel_timer_request
2014 {
2015     struct request_header __header;
2016     obj_handle_t handle;
2017 };
2018 struct cancel_timer_reply
2019 {
2020     struct reply_header __header;
2021      int         signaled;
2022 };
2023
2024
2025
2026 struct get_thread_context_request
2027 {
2028     struct request_header __header;
2029     obj_handle_t handle;
2030     unsigned int flags;
2031 };
2032 struct get_thread_context_reply
2033 {
2034     struct reply_header __header;
2035     /* VARARG(context,context); */
2036 };
2037
2038
2039
2040 struct set_thread_context_request
2041 {
2042     struct request_header __header;
2043     obj_handle_t handle;
2044     unsigned int flags;
2045     /* VARARG(context,context); */
2046 };
2047 struct set_thread_context_reply
2048 {
2049     struct reply_header __header;
2050 };
2051
2052
2053
2054 struct get_selector_entry_request
2055 {
2056     struct request_header __header;
2057     obj_handle_t  handle;
2058     int           entry;
2059 };
2060 struct get_selector_entry_reply
2061 {
2062     struct reply_header __header;
2063     unsigned int  base;
2064     unsigned int  limit;
2065     unsigned char flags;
2066 };
2067
2068
2069
2070 struct add_atom_request
2071 {
2072     struct request_header __header;
2073     int           local;
2074     /* VARARG(name,unicode_str); */
2075 };
2076 struct add_atom_reply
2077 {
2078     struct reply_header __header;
2079     atom_t        atom;
2080 };
2081
2082
2083
2084 struct delete_atom_request
2085 {
2086     struct request_header __header;
2087     atom_t        atom;
2088     int           local;
2089 };
2090 struct delete_atom_reply
2091 {
2092     struct reply_header __header;
2093 };
2094
2095
2096
2097 struct find_atom_request
2098 {
2099     struct request_header __header;
2100     int          local;
2101     /* VARARG(name,unicode_str); */
2102 };
2103 struct find_atom_reply
2104 {
2105     struct reply_header __header;
2106     atom_t       atom;
2107 };
2108
2109
2110
2111 struct get_atom_name_request
2112 {
2113     struct request_header __header;
2114     atom_t       atom;
2115     int          local;
2116 };
2117 struct get_atom_name_reply
2118 {
2119     struct reply_header __header;
2120     int          count;
2121     /* VARARG(name,unicode_str); */
2122 };
2123
2124
2125
2126 struct init_atom_table_request
2127 {
2128     struct request_header __header;
2129     int          entries;
2130 };
2131 struct init_atom_table_reply
2132 {
2133     struct reply_header __header;
2134 };
2135
2136
2137
2138 struct get_msg_queue_request
2139 {
2140     struct request_header __header;
2141 };
2142 struct get_msg_queue_reply
2143 {
2144     struct reply_header __header;
2145     obj_handle_t handle;
2146 };
2147
2148
2149
2150 struct set_queue_mask_request
2151 {
2152     struct request_header __header;
2153     unsigned int wake_mask;
2154     unsigned int changed_mask;
2155     int          skip_wait;
2156 };
2157 struct set_queue_mask_reply
2158 {
2159     struct reply_header __header;
2160     unsigned int wake_bits;
2161     unsigned int changed_bits;
2162 };
2163
2164
2165
2166 struct get_queue_status_request
2167 {
2168     struct request_header __header;
2169     int          clear;
2170 };
2171 struct get_queue_status_reply
2172 {
2173     struct reply_header __header;
2174     unsigned int wake_bits;
2175     unsigned int changed_bits;
2176 };
2177
2178
2179
2180 struct wait_input_idle_request
2181 {
2182     struct request_header __header;
2183     obj_handle_t handle;
2184     int          timeout;
2185 };
2186 struct wait_input_idle_reply
2187 {
2188     struct reply_header __header;
2189     obj_handle_t event;
2190 };
2191
2192
2193
2194 struct send_message_request
2195 {
2196     struct request_header __header;
2197     thread_id_t     id;
2198     int             type;
2199     int             flags;
2200     user_handle_t   win;
2201     unsigned int    msg;
2202     unsigned int    wparam;
2203     unsigned int    lparam;
2204     int             x;
2205     int             y;
2206     unsigned int    time;
2207     unsigned int    info;
2208     int             timeout;
2209     void*           callback;
2210     /* VARARG(data,bytes); */
2211 };
2212 struct send_message_reply
2213 {
2214     struct reply_header __header;
2215 };
2216
2217 enum message_type
2218 {
2219     MSG_ASCII,
2220     MSG_UNICODE,
2221     MSG_NOTIFY,
2222     MSG_CALLBACK,
2223     MSG_CALLBACK_RESULT,
2224     MSG_OTHER_PROCESS,
2225     MSG_POSTED,
2226     MSG_HARDWARE
2227 };
2228 #define SEND_MSG_ABORT_IF_HUNG  0x01
2229
2230
2231
2232 struct get_message_request
2233 {
2234     struct request_header __header;
2235     int             flags;
2236     user_handle_t   get_win;
2237     unsigned int    get_first;
2238     unsigned int    get_last;
2239 };
2240 struct get_message_reply
2241 {
2242     struct reply_header __header;
2243     int             type;
2244     user_handle_t   win;
2245     unsigned int    msg;
2246     unsigned int    wparam;
2247     unsigned int    lparam;
2248     int             x;
2249     int             y;
2250     unsigned int    time;
2251     unsigned int    info;
2252     size_t          total;
2253     /* VARARG(data,bytes); */
2254 };
2255 #define GET_MSG_REMOVE      1
2256 #define GET_MSG_SENT_ONLY   2
2257
2258
2259 struct reply_message_request
2260 {
2261     struct request_header __header;
2262     int             type;
2263     unsigned int    result;
2264     int             remove;
2265     /* VARARG(data,bytes); */
2266 };
2267 struct reply_message_reply
2268 {
2269     struct reply_header __header;
2270 };
2271
2272
2273
2274 struct get_message_reply_request
2275 {
2276     struct request_header __header;
2277     int             cancel;
2278 };
2279 struct get_message_reply_reply
2280 {
2281     struct reply_header __header;
2282     unsigned int    result;
2283     /* VARARG(data,bytes); */
2284 };
2285
2286
2287
2288 struct set_win_timer_request
2289 {
2290     struct request_header __header;
2291     user_handle_t   win;
2292     unsigned int    msg;
2293     unsigned int    id;
2294     unsigned int    rate;
2295     unsigned int    lparam;
2296 };
2297 struct set_win_timer_reply
2298 {
2299     struct reply_header __header;
2300 };
2301
2302
2303
2304 struct kill_win_timer_request
2305 {
2306     struct request_header __header;
2307     user_handle_t   win;
2308     unsigned int    msg;
2309     unsigned int    id;
2310 };
2311 struct kill_win_timer_reply
2312 {
2313     struct reply_header __header;
2314 };
2315
2316
2317
2318 struct create_serial_request
2319 {
2320     struct request_header __header;
2321     unsigned int access;
2322     int          inherit;
2323     unsigned int attributes;
2324     unsigned int sharing;
2325     /* VARARG(name,string); */
2326 };
2327 struct create_serial_reply
2328 {
2329     struct reply_header __header;
2330     obj_handle_t handle;
2331 };
2332
2333
2334
2335 struct get_serial_info_request
2336 {
2337     struct request_header __header;
2338     obj_handle_t handle;
2339 };
2340 struct get_serial_info_reply
2341 {
2342     struct reply_header __header;
2343     unsigned int readinterval;
2344     unsigned int readconst;
2345     unsigned int readmult;
2346     unsigned int writeconst;
2347     unsigned int writemult;
2348     unsigned int eventmask;
2349     unsigned int commerror;
2350 };
2351
2352
2353
2354 struct set_serial_info_request
2355 {
2356     struct request_header __header;
2357     obj_handle_t handle;
2358     int          flags;
2359     unsigned int readinterval;
2360     unsigned int readconst;
2361     unsigned int readmult;
2362     unsigned int writeconst;
2363     unsigned int writemult;
2364     unsigned int eventmask;
2365     unsigned int commerror;
2366 };
2367 struct set_serial_info_reply
2368 {
2369     struct reply_header __header;
2370 };
2371 #define SERIALINFO_SET_TIMEOUTS  0x01
2372 #define SERIALINFO_SET_MASK      0x02
2373 #define SERIALINFO_SET_ERROR     0x04
2374
2375
2376
2377 struct register_async_request
2378 {
2379     struct request_header __header;
2380     obj_handle_t handle;
2381     int          type;
2382     void*        overlapped;
2383     int          count;
2384     unsigned int status;
2385 };
2386 struct register_async_reply
2387 {
2388     struct reply_header __header;
2389 };
2390 #define ASYNC_TYPE_NONE  0x00
2391 #define ASYNC_TYPE_READ  0x01
2392 #define ASYNC_TYPE_WRITE 0x02
2393 #define ASYNC_TYPE_WAIT  0x03
2394
2395
2396
2397 struct create_named_pipe_request
2398 {
2399     struct request_header __header;
2400     unsigned int   openmode;
2401     unsigned int   pipemode;
2402     unsigned int   maxinstances;
2403     unsigned int   outsize;
2404     unsigned int   insize;
2405     unsigned int   timeout;
2406     /* VARARG(name,unicode_str); */
2407 };
2408 struct create_named_pipe_reply
2409 {
2410     struct reply_header __header;
2411     obj_handle_t   handle;
2412 };
2413
2414
2415
2416 struct open_named_pipe_request
2417 {
2418     struct request_header __header;
2419     unsigned int   access;
2420     int            inherit;
2421     /* VARARG(name,unicode_str); */
2422 };
2423 struct open_named_pipe_reply
2424 {
2425     struct reply_header __header;
2426     obj_handle_t   handle;
2427 };
2428
2429
2430
2431 struct connect_named_pipe_request
2432 {
2433     struct request_header __header;
2434     obj_handle_t   handle;
2435     void*          overlapped;
2436     void*          func;
2437 };
2438 struct connect_named_pipe_reply
2439 {
2440     struct reply_header __header;
2441 };
2442
2443
2444
2445 struct wait_named_pipe_request
2446 {
2447     struct request_header __header;
2448     unsigned int   timeout;
2449     void*          overlapped;
2450     void*          func;
2451     /* VARARG(name,unicode_str); */
2452 };
2453 struct wait_named_pipe_reply
2454 {
2455     struct reply_header __header;
2456 };
2457
2458
2459
2460 struct disconnect_named_pipe_request
2461 {
2462     struct request_header __header;
2463     obj_handle_t   handle;
2464 };
2465 struct disconnect_named_pipe_reply
2466 {
2467     struct reply_header __header;
2468     int            fd;
2469 };
2470
2471
2472 struct get_named_pipe_info_request
2473 {
2474     struct request_header __header;
2475     obj_handle_t   handle;
2476 };
2477 struct get_named_pipe_info_reply
2478 {
2479     struct reply_header __header;
2480     unsigned int   flags;
2481     unsigned int   maxinstances;
2482     unsigned int   outsize;
2483     unsigned int   insize;
2484 };
2485
2486
2487 struct create_smb_request
2488 {
2489     struct request_header __header;
2490     int            fd;
2491     unsigned int   tree_id;
2492     unsigned int   user_id;
2493     unsigned int   file_id;
2494     unsigned int   dialect;
2495 };
2496 struct create_smb_reply
2497 {
2498     struct reply_header __header;
2499     obj_handle_t   handle;
2500 };
2501
2502
2503 struct get_smb_info_request
2504 {
2505     struct request_header __header;
2506     obj_handle_t   handle;
2507     unsigned int   flags;
2508     unsigned int   offset;
2509 };
2510 struct get_smb_info_reply
2511 {
2512     struct reply_header __header;
2513     unsigned int   tree_id;
2514     unsigned int   user_id;
2515     unsigned int   dialect;
2516     unsigned int   file_id;
2517     unsigned int   offset;
2518 };
2519 #define SMBINFO_SET_OFFSET    0x01
2520
2521
2522
2523 struct create_window_request
2524 {
2525     struct request_header __header;
2526     user_handle_t  parent;
2527     user_handle_t  owner;
2528     atom_t         atom;
2529 };
2530 struct create_window_reply
2531 {
2532     struct reply_header __header;
2533     user_handle_t  handle;
2534 };
2535
2536
2537
2538 struct link_window_request
2539 {
2540     struct request_header __header;
2541     user_handle_t  handle;
2542     user_handle_t  parent;
2543     user_handle_t  previous;
2544 };
2545 struct link_window_reply
2546 {
2547     struct reply_header __header;
2548     user_handle_t  full_parent;
2549 };
2550
2551
2552
2553 struct destroy_window_request
2554 {
2555     struct request_header __header;
2556     user_handle_t  handle;
2557 };
2558 struct destroy_window_reply
2559 {
2560     struct reply_header __header;
2561 };
2562
2563
2564
2565 struct set_window_owner_request
2566 {
2567     struct request_header __header;
2568     user_handle_t  handle;
2569     user_handle_t  owner;
2570 };
2571 struct set_window_owner_reply
2572 {
2573     struct reply_header __header;
2574     user_handle_t  full_owner;
2575     user_handle_t  prev_owner;
2576 };
2577
2578
2579
2580 struct get_window_info_request
2581 {
2582     struct request_header __header;
2583     user_handle_t  handle;
2584 };
2585 struct get_window_info_reply
2586 {
2587     struct reply_header __header;
2588     user_handle_t  full_handle;
2589     user_handle_t  last_active;
2590     process_id_t   pid;
2591     thread_id_t    tid;
2592     atom_t         atom;
2593 };
2594
2595
2596
2597 struct set_window_info_request
2598 {
2599     struct request_header __header;
2600     user_handle_t  handle;
2601     unsigned int   flags;
2602     unsigned int   style;
2603     unsigned int   ex_style;
2604     unsigned int   id;
2605     void*          instance;
2606     void*          user_data;
2607 };
2608 struct set_window_info_reply
2609 {
2610     struct reply_header __header;
2611     unsigned int   old_style;
2612     unsigned int   old_ex_style;
2613     unsigned int   old_id;
2614     void*          old_instance;
2615     void*          old_user_data;
2616 };
2617 #define SET_WIN_STYLE     0x01
2618 #define SET_WIN_EXSTYLE   0x02
2619 #define SET_WIN_ID        0x04
2620 #define SET_WIN_INSTANCE  0x08
2621 #define SET_WIN_USERDATA  0x10
2622
2623
2624
2625 struct get_window_parents_request
2626 {
2627     struct request_header __header;
2628     user_handle_t  handle;
2629 };
2630 struct get_window_parents_reply
2631 {
2632     struct reply_header __header;
2633     int            count;
2634     /* VARARG(parents,user_handles); */
2635 };
2636
2637
2638
2639 struct get_window_children_request
2640 {
2641     struct request_header __header;
2642     user_handle_t  parent;
2643     atom_t         atom;
2644     thread_id_t    tid;
2645 };
2646 struct get_window_children_reply
2647 {
2648     struct reply_header __header;
2649     int            count;
2650     /* VARARG(children,user_handles); */
2651 };
2652
2653
2654
2655 struct get_window_tree_request
2656 {
2657     struct request_header __header;
2658     user_handle_t  handle;
2659 };
2660 struct get_window_tree_reply
2661 {
2662     struct reply_header __header;
2663     user_handle_t  parent;
2664     user_handle_t  owner;
2665     user_handle_t  next_sibling;
2666     user_handle_t  prev_sibling;
2667     user_handle_t  first_sibling;
2668     user_handle_t  last_sibling;
2669     user_handle_t  first_child;
2670     user_handle_t  last_child;
2671 };
2672
2673
2674 struct set_window_rectangles_request
2675 {
2676     struct request_header __header;
2677     user_handle_t  handle;
2678     rectangle_t    window;
2679     rectangle_t    client;
2680 };
2681 struct set_window_rectangles_reply
2682 {
2683     struct reply_header __header;
2684 };
2685
2686
2687
2688 struct get_window_rectangles_request
2689 {
2690     struct request_header __header;
2691     user_handle_t  handle;
2692 };
2693 struct get_window_rectangles_reply
2694 {
2695     struct reply_header __header;
2696     rectangle_t    window;
2697     rectangle_t    client;
2698 };
2699
2700
2701
2702 struct get_window_text_request
2703 {
2704     struct request_header __header;
2705     user_handle_t  handle;
2706 };
2707 struct get_window_text_reply
2708 {
2709     struct reply_header __header;
2710     /* VARARG(text,unicode_str); */
2711 };
2712
2713
2714
2715 struct set_window_text_request
2716 {
2717     struct request_header __header;
2718     user_handle_t  handle;
2719     /* VARARG(text,unicode_str); */
2720 };
2721 struct set_window_text_reply
2722 {
2723     struct reply_header __header;
2724 };
2725
2726
2727
2728 struct inc_window_paint_count_request
2729 {
2730     struct request_header __header;
2731     user_handle_t  handle;
2732     int             incr;
2733 };
2734 struct inc_window_paint_count_reply
2735 {
2736     struct reply_header __header;
2737 };
2738
2739
2740
2741 struct get_windows_offset_request
2742 {
2743     struct request_header __header;
2744     user_handle_t  from;
2745     user_handle_t  to;
2746 };
2747 struct get_windows_offset_reply
2748 {
2749     struct reply_header __header;
2750     int            x;
2751     int            y;
2752 };
2753
2754
2755
2756 struct set_window_property_request
2757 {
2758     struct request_header __header;
2759     user_handle_t  window;
2760     atom_t         atom;
2761     int            string;
2762     obj_handle_t   handle;
2763 };
2764 struct set_window_property_reply
2765 {
2766     struct reply_header __header;
2767 };
2768
2769
2770
2771 struct remove_window_property_request
2772 {
2773     struct request_header __header;
2774     user_handle_t  window;
2775     atom_t         atom;
2776 };
2777 struct remove_window_property_reply
2778 {
2779     struct reply_header __header;
2780     obj_handle_t   handle;
2781 };
2782
2783
2784
2785 struct get_window_property_request
2786 {
2787     struct request_header __header;
2788     user_handle_t  window;
2789     atom_t         atom;
2790 };
2791 struct get_window_property_reply
2792 {
2793     struct reply_header __header;
2794     obj_handle_t   handle;
2795 };
2796
2797
2798
2799 struct get_window_properties_request
2800 {
2801     struct request_header __header;
2802     user_handle_t  window;
2803 };
2804 struct get_window_properties_reply
2805 {
2806     struct reply_header __header;
2807     int            total;
2808     /* VARARG(props,properties); */
2809 };
2810
2811
2812
2813 struct attach_thread_input_request
2814 {
2815     struct request_header __header;
2816     thread_id_t    tid_from;
2817     thread_id_t    tid_to;
2818     int            attach;
2819 };
2820 struct attach_thread_input_reply
2821 {
2822     struct reply_header __header;
2823 };
2824
2825
2826
2827 struct get_thread_input_request
2828 {
2829     struct request_header __header;
2830     thread_id_t    tid;
2831 };
2832 struct get_thread_input_reply
2833 {
2834     struct reply_header __header;
2835     user_handle_t  focus;
2836     user_handle_t  capture;
2837     user_handle_t  active;
2838     user_handle_t  foreground;
2839     user_handle_t  menu_owner;
2840     user_handle_t  move_size;
2841     user_handle_t  caret;
2842     rectangle_t    rect;
2843 };
2844
2845
2846 struct get_key_state_request
2847 {
2848     struct request_header __header;
2849     thread_id_t    tid;
2850     int            key;
2851 };
2852 struct get_key_state_reply
2853 {
2854     struct reply_header __header;
2855     unsigned char  state;
2856     /* VARARG(keystate,bytes); */
2857 };
2858
2859
2860 struct set_key_state_request
2861 {
2862     struct request_header __header;
2863     thread_id_t    tid;
2864     /* VARARG(keystate,bytes); */
2865 };
2866 struct set_key_state_reply
2867 {
2868     struct reply_header __header;
2869 };
2870
2871
2872 struct set_foreground_window_request
2873 {
2874     struct request_header __header;
2875     user_handle_t  handle;
2876 };
2877 struct set_foreground_window_reply
2878 {
2879     struct reply_header __header;
2880     user_handle_t  previous;
2881     int            send_msg_old;
2882     int            send_msg_new;
2883 };
2884
2885
2886 struct set_focus_window_request
2887 {
2888     struct request_header __header;
2889     user_handle_t  handle;
2890 };
2891 struct set_focus_window_reply
2892 {
2893     struct reply_header __header;
2894     user_handle_t  previous;
2895 };
2896
2897
2898 struct set_active_window_request
2899 {
2900     struct request_header __header;
2901     user_handle_t  handle;
2902 };
2903 struct set_active_window_reply
2904 {
2905     struct reply_header __header;
2906     user_handle_t  previous;
2907 };
2908
2909
2910 struct set_capture_window_request
2911 {
2912     struct request_header __header;
2913     user_handle_t  handle;
2914     unsigned int   flags;
2915 };
2916 struct set_capture_window_reply
2917 {
2918     struct reply_header __header;
2919     user_handle_t  previous;
2920     user_handle_t  full_handle;
2921 };
2922 #define CAPTURE_MENU     0x01
2923 #define CAPTURE_MOVESIZE 0x02
2924
2925
2926
2927 struct set_caret_window_request
2928 {
2929     struct request_header __header;
2930     user_handle_t  handle;
2931     int            width;
2932     int            height;
2933 };
2934 struct set_caret_window_reply
2935 {
2936     struct reply_header __header;
2937     user_handle_t  previous;
2938     rectangle_t    old_rect;
2939     int            old_hide;
2940     int            old_state;
2941 };
2942
2943
2944
2945 struct set_caret_info_request
2946 {
2947     struct request_header __header;
2948     unsigned int   flags;
2949     user_handle_t  handle;
2950     int            x;
2951     int            y;
2952     int            hide;
2953     int            state;
2954 };
2955 struct set_caret_info_reply
2956 {
2957     struct reply_header __header;
2958     user_handle_t  full_handle;
2959     rectangle_t    old_rect;
2960     int            old_hide;
2961     int            old_state;
2962 };
2963 #define SET_CARET_POS        0x01
2964 #define SET_CARET_HIDE       0x02
2965 #define SET_CARET_STATE      0x04
2966
2967
2968
2969 struct set_hook_request
2970 {
2971     struct request_header __header;
2972     int            id;
2973     thread_id_t    tid;
2974     void*          proc;
2975     int            unicode;
2976     /* VARARG(module,unicode_str); */
2977 };
2978 struct set_hook_reply
2979 {
2980     struct reply_header __header;
2981     user_handle_t  handle;
2982 };
2983
2984
2985
2986 struct remove_hook_request
2987 {
2988     struct request_header __header;
2989     user_handle_t  handle;
2990     int            id;
2991     void*          proc;
2992 };
2993 struct remove_hook_reply
2994 {
2995     struct reply_header __header;
2996 };
2997
2998
2999
3000 struct start_hook_chain_request
3001 {
3002     struct request_header __header;
3003     int            id;
3004 };
3005 struct start_hook_chain_reply
3006 {
3007     struct reply_header __header;
3008     user_handle_t  handle;
3009     process_id_t   pid;
3010     thread_id_t    tid;
3011     void*          proc;
3012     int            unicode;
3013     /* VARARG(module,unicode_str); */
3014 };
3015
3016
3017
3018 struct finish_hook_chain_request
3019 {
3020     struct request_header __header;
3021     int            id;
3022 };
3023 struct finish_hook_chain_reply
3024 {
3025     struct reply_header __header;
3026 };
3027
3028
3029
3030 struct get_next_hook_request
3031 {
3032     struct request_header __header;
3033     user_handle_t  handle;
3034 };
3035 struct get_next_hook_reply
3036 {
3037     struct reply_header __header;
3038     user_handle_t  next;
3039     int            id;
3040     process_id_t   pid;
3041     thread_id_t    tid;
3042     void*          proc;
3043     int            prev_unicode;
3044     int            next_unicode;
3045     /* VARARG(module,unicode_str); */
3046 };
3047
3048
3049
3050 struct set_clipboard_info_request
3051 {
3052     struct request_header __header;
3053     unsigned int   flags;
3054     user_handle_t  clipboard;
3055     user_handle_t  owner;
3056     user_handle_t  viewer;
3057     unsigned int   seqno;
3058 };
3059 struct set_clipboard_info_reply
3060 {
3061     struct reply_header __header;
3062     unsigned int   flags;
3063     user_handle_t  old_clipboard;
3064     user_handle_t  old_owner;
3065     user_handle_t  old_viewer;
3066     unsigned int   seqno;
3067 };
3068
3069 #define SET_CB_OPEN      0x001
3070 #define SET_CB_OWNER     0x002
3071 #define SET_CB_VIEWER    0x004
3072 #define SET_CB_SEQNO     0x008
3073 #define SET_CB_RELOWNER  0x010
3074 #define SET_CB_CLOSE     0x020
3075 #define CB_OPEN          0x040
3076 #define CB_OWNER         0x080
3077
3078
3079
3080 struct open_token_request
3081 {
3082     struct request_header __header;
3083     obj_handle_t   handle;
3084     unsigned int   flags;
3085 };
3086 struct open_token_reply
3087 {
3088     struct reply_header __header;
3089     obj_handle_t   token;
3090 };
3091 #define OPEN_TOKEN_THREAD   1
3092 #define OPEN_TOKEN_AS_SELF  2
3093
3094
3095
3096 struct set_global_windows_request
3097 {
3098     struct request_header __header;
3099     unsigned int   flags;
3100     user_handle_t  shell_window;
3101     user_handle_t  shell_listview;
3102     user_handle_t  progman_window;
3103     user_handle_t  taskman_window;
3104 };
3105 struct set_global_windows_reply
3106 {
3107     struct reply_header __header;
3108     user_handle_t  old_shell_window;
3109     user_handle_t  old_shell_listview;
3110     user_handle_t  old_progman_window;
3111     user_handle_t  old_taskman_window;
3112 };
3113 #define SET_GLOBAL_SHELL_WINDOWS   0x01
3114 #define SET_GLOBAL_PROGMAN_WINDOW  0x02
3115 #define SET_GLOBAL_TASKMAN_WINDOW  0x04
3116
3117
3118 enum request
3119 {
3120     REQ_new_process,
3121     REQ_get_new_process_info,
3122     REQ_new_thread,
3123     REQ_boot_done,
3124     REQ_init_process,
3125     REQ_get_startup_info,
3126     REQ_init_process_done,
3127     REQ_init_thread,
3128     REQ_terminate_process,
3129     REQ_terminate_thread,
3130     REQ_get_process_info,
3131     REQ_set_process_info,
3132     REQ_get_thread_info,
3133     REQ_set_thread_info,
3134     REQ_get_dll_info,
3135     REQ_suspend_thread,
3136     REQ_resume_thread,
3137     REQ_load_dll,
3138     REQ_unload_dll,
3139     REQ_queue_apc,
3140     REQ_get_apc,
3141     REQ_close_handle,
3142     REQ_set_handle_info,
3143     REQ_dup_handle,
3144     REQ_open_process,
3145     REQ_open_thread,
3146     REQ_select,
3147     REQ_create_event,
3148     REQ_event_op,
3149     REQ_open_event,
3150     REQ_create_mutex,
3151     REQ_release_mutex,
3152     REQ_open_mutex,
3153     REQ_create_semaphore,
3154     REQ_release_semaphore,
3155     REQ_open_semaphore,
3156     REQ_create_file,
3157     REQ_alloc_file_handle,
3158     REQ_get_handle_fd,
3159     REQ_set_file_pointer,
3160     REQ_truncate_file,
3161     REQ_set_file_time,
3162     REQ_flush_file,
3163     REQ_get_file_info,
3164     REQ_lock_file,
3165     REQ_unlock_file,
3166     REQ_create_socket,
3167     REQ_accept_socket,
3168     REQ_set_socket_event,
3169     REQ_get_socket_event,
3170     REQ_enable_socket_event,
3171     REQ_set_socket_deferred,
3172     REQ_alloc_console,
3173     REQ_free_console,
3174     REQ_get_console_renderer_events,
3175     REQ_open_console,
3176     REQ_get_console_wait_event,
3177     REQ_get_console_mode,
3178     REQ_set_console_mode,
3179     REQ_set_console_input_info,
3180     REQ_get_console_input_info,
3181     REQ_append_console_input_history,
3182     REQ_get_console_input_history,
3183     REQ_create_console_output,
3184     REQ_set_console_output_info,
3185     REQ_get_console_output_info,
3186     REQ_write_console_input,
3187     REQ_read_console_input,
3188     REQ_write_console_output,
3189     REQ_fill_console_output,
3190     REQ_read_console_output,
3191     REQ_move_console_output,
3192     REQ_send_console_signal,
3193     REQ_create_change_notification,
3194     REQ_next_change_notification,
3195     REQ_create_mapping,
3196     REQ_open_mapping,
3197     REQ_get_mapping_info,
3198     REQ_create_device,
3199     REQ_get_device_id,
3200     REQ_create_snapshot,
3201     REQ_next_process,
3202     REQ_next_thread,
3203     REQ_next_module,
3204     REQ_wait_debug_event,
3205     REQ_queue_exception_event,
3206     REQ_get_exception_status,
3207     REQ_output_debug_string,
3208     REQ_continue_debug_event,
3209     REQ_debug_process,
3210     REQ_debug_break,
3211     REQ_set_debugger_kill_on_exit,
3212     REQ_read_process_memory,
3213     REQ_write_process_memory,
3214     REQ_create_key,
3215     REQ_open_key,
3216     REQ_delete_key,
3217     REQ_enum_key,
3218     REQ_set_key_value,
3219     REQ_get_key_value,
3220     REQ_enum_key_value,
3221     REQ_delete_key_value,
3222     REQ_load_registry,
3223     REQ_unload_registry,
3224     REQ_save_registry,
3225     REQ_save_registry_atexit,
3226     REQ_set_registry_levels,
3227     REQ_set_registry_notification,
3228     REQ_create_timer,
3229     REQ_open_timer,
3230     REQ_set_timer,
3231     REQ_cancel_timer,
3232     REQ_get_thread_context,
3233     REQ_set_thread_context,
3234     REQ_get_selector_entry,
3235     REQ_add_atom,
3236     REQ_delete_atom,
3237     REQ_find_atom,
3238     REQ_get_atom_name,
3239     REQ_init_atom_table,
3240     REQ_get_msg_queue,
3241     REQ_set_queue_mask,
3242     REQ_get_queue_status,
3243     REQ_wait_input_idle,
3244     REQ_send_message,
3245     REQ_get_message,
3246     REQ_reply_message,
3247     REQ_get_message_reply,
3248     REQ_set_win_timer,
3249     REQ_kill_win_timer,
3250     REQ_create_serial,
3251     REQ_get_serial_info,
3252     REQ_set_serial_info,
3253     REQ_register_async,
3254     REQ_create_named_pipe,
3255     REQ_open_named_pipe,
3256     REQ_connect_named_pipe,
3257     REQ_wait_named_pipe,
3258     REQ_disconnect_named_pipe,
3259     REQ_get_named_pipe_info,
3260     REQ_create_smb,
3261     REQ_get_smb_info,
3262     REQ_create_window,
3263     REQ_link_window,
3264     REQ_destroy_window,
3265     REQ_set_window_owner,
3266     REQ_get_window_info,
3267     REQ_set_window_info,
3268     REQ_get_window_parents,
3269     REQ_get_window_children,
3270     REQ_get_window_tree,
3271     REQ_set_window_rectangles,
3272     REQ_get_window_rectangles,
3273     REQ_get_window_text,
3274     REQ_set_window_text,
3275     REQ_inc_window_paint_count,
3276     REQ_get_windows_offset,
3277     REQ_set_window_property,
3278     REQ_remove_window_property,
3279     REQ_get_window_property,
3280     REQ_get_window_properties,
3281     REQ_attach_thread_input,
3282     REQ_get_thread_input,
3283     REQ_get_key_state,
3284     REQ_set_key_state,
3285     REQ_set_foreground_window,
3286     REQ_set_focus_window,
3287     REQ_set_active_window,
3288     REQ_set_capture_window,
3289     REQ_set_caret_window,
3290     REQ_set_caret_info,
3291     REQ_set_hook,
3292     REQ_remove_hook,
3293     REQ_start_hook_chain,
3294     REQ_finish_hook_chain,
3295     REQ_get_next_hook,
3296     REQ_set_clipboard_info,
3297     REQ_open_token,
3298     REQ_set_global_windows,
3299     REQ_NB_REQUESTS
3300 };
3301
3302 union generic_request
3303 {
3304     struct request_max_size max_size;
3305     struct request_header request_header;
3306     struct new_process_request new_process_request;
3307     struct get_new_process_info_request get_new_process_info_request;
3308     struct new_thread_request new_thread_request;
3309     struct boot_done_request boot_done_request;
3310     struct init_process_request init_process_request;
3311     struct get_startup_info_request get_startup_info_request;
3312     struct init_process_done_request init_process_done_request;
3313     struct init_thread_request init_thread_request;
3314     struct terminate_process_request terminate_process_request;
3315     struct terminate_thread_request terminate_thread_request;
3316     struct get_process_info_request get_process_info_request;
3317     struct set_process_info_request set_process_info_request;
3318     struct get_thread_info_request get_thread_info_request;
3319     struct set_thread_info_request set_thread_info_request;
3320     struct get_dll_info_request get_dll_info_request;
3321     struct suspend_thread_request suspend_thread_request;
3322     struct resume_thread_request resume_thread_request;
3323     struct load_dll_request load_dll_request;
3324     struct unload_dll_request unload_dll_request;
3325     struct queue_apc_request queue_apc_request;
3326     struct get_apc_request get_apc_request;
3327     struct close_handle_request close_handle_request;
3328     struct set_handle_info_request set_handle_info_request;
3329     struct dup_handle_request dup_handle_request;
3330     struct open_process_request open_process_request;
3331     struct open_thread_request open_thread_request;
3332     struct select_request select_request;
3333     struct create_event_request create_event_request;
3334     struct event_op_request event_op_request;
3335     struct open_event_request open_event_request;
3336     struct create_mutex_request create_mutex_request;
3337     struct release_mutex_request release_mutex_request;
3338     struct open_mutex_request open_mutex_request;
3339     struct create_semaphore_request create_semaphore_request;
3340     struct release_semaphore_request release_semaphore_request;
3341     struct open_semaphore_request open_semaphore_request;
3342     struct create_file_request create_file_request;
3343     struct alloc_file_handle_request alloc_file_handle_request;
3344     struct get_handle_fd_request get_handle_fd_request;
3345     struct set_file_pointer_request set_file_pointer_request;
3346     struct truncate_file_request truncate_file_request;
3347     struct set_file_time_request set_file_time_request;
3348     struct flush_file_request flush_file_request;
3349     struct get_file_info_request get_file_info_request;
3350     struct lock_file_request lock_file_request;
3351     struct unlock_file_request unlock_file_request;
3352     struct create_socket_request create_socket_request;
3353     struct accept_socket_request accept_socket_request;
3354     struct set_socket_event_request set_socket_event_request;
3355     struct get_socket_event_request get_socket_event_request;
3356     struct enable_socket_event_request enable_socket_event_request;
3357     struct set_socket_deferred_request set_socket_deferred_request;
3358     struct alloc_console_request alloc_console_request;
3359     struct free_console_request free_console_request;
3360     struct get_console_renderer_events_request get_console_renderer_events_request;
3361     struct open_console_request open_console_request;
3362     struct get_console_wait_event_request get_console_wait_event_request;
3363     struct get_console_mode_request get_console_mode_request;
3364     struct set_console_mode_request set_console_mode_request;
3365     struct set_console_input_info_request set_console_input_info_request;
3366     struct get_console_input_info_request get_console_input_info_request;
3367     struct append_console_input_history_request append_console_input_history_request;
3368     struct get_console_input_history_request get_console_input_history_request;
3369     struct create_console_output_request create_console_output_request;
3370     struct set_console_output_info_request set_console_output_info_request;
3371     struct get_console_output_info_request get_console_output_info_request;
3372     struct write_console_input_request write_console_input_request;
3373     struct read_console_input_request read_console_input_request;
3374     struct write_console_output_request write_console_output_request;
3375     struct fill_console_output_request fill_console_output_request;
3376     struct read_console_output_request read_console_output_request;
3377     struct move_console_output_request move_console_output_request;
3378     struct send_console_signal_request send_console_signal_request;
3379     struct create_change_notification_request create_change_notification_request;
3380     struct next_change_notification_request next_change_notification_request;
3381     struct create_mapping_request create_mapping_request;
3382     struct open_mapping_request open_mapping_request;
3383     struct get_mapping_info_request get_mapping_info_request;
3384     struct create_device_request create_device_request;
3385     struct get_device_id_request get_device_id_request;
3386     struct create_snapshot_request create_snapshot_request;
3387     struct next_process_request next_process_request;
3388     struct next_thread_request next_thread_request;
3389     struct next_module_request next_module_request;
3390     struct wait_debug_event_request wait_debug_event_request;
3391     struct queue_exception_event_request queue_exception_event_request;
3392     struct get_exception_status_request get_exception_status_request;
3393     struct output_debug_string_request output_debug_string_request;
3394     struct continue_debug_event_request continue_debug_event_request;
3395     struct debug_process_request debug_process_request;
3396     struct debug_break_request debug_break_request;
3397     struct set_debugger_kill_on_exit_request set_debugger_kill_on_exit_request;
3398     struct read_process_memory_request read_process_memory_request;
3399     struct write_process_memory_request write_process_memory_request;
3400     struct create_key_request create_key_request;
3401     struct open_key_request open_key_request;
3402     struct delete_key_request delete_key_request;
3403     struct enum_key_request enum_key_request;
3404     struct set_key_value_request set_key_value_request;
3405     struct get_key_value_request get_key_value_request;
3406     struct enum_key_value_request enum_key_value_request;
3407     struct delete_key_value_request delete_key_value_request;
3408     struct load_registry_request load_registry_request;
3409     struct unload_registry_request unload_registry_request;
3410     struct save_registry_request save_registry_request;
3411     struct save_registry_atexit_request save_registry_atexit_request;
3412     struct set_registry_levels_request set_registry_levels_request;
3413     struct set_registry_notification_request set_registry_notification_request;
3414     struct create_timer_request create_timer_request;
3415     struct open_timer_request open_timer_request;
3416     struct set_timer_request set_timer_request;
3417     struct cancel_timer_request cancel_timer_request;
3418     struct get_thread_context_request get_thread_context_request;
3419     struct set_thread_context_request set_thread_context_request;
3420     struct get_selector_entry_request get_selector_entry_request;
3421     struct add_atom_request add_atom_request;
3422     struct delete_atom_request delete_atom_request;
3423     struct find_atom_request find_atom_request;
3424     struct get_atom_name_request get_atom_name_request;
3425     struct init_atom_table_request init_atom_table_request;
3426     struct get_msg_queue_request get_msg_queue_request;
3427     struct set_queue_mask_request set_queue_mask_request;
3428     struct get_queue_status_request get_queue_status_request;
3429     struct wait_input_idle_request wait_input_idle_request;
3430     struct send_message_request send_message_request;
3431     struct get_message_request get_message_request;
3432     struct reply_message_request reply_message_request;
3433     struct get_message_reply_request get_message_reply_request;
3434     struct set_win_timer_request set_win_timer_request;
3435     struct kill_win_timer_request kill_win_timer_request;
3436     struct create_serial_request create_serial_request;
3437     struct get_serial_info_request get_serial_info_request;
3438     struct set_serial_info_request set_serial_info_request;
3439     struct register_async_request register_async_request;
3440     struct create_named_pipe_request create_named_pipe_request;
3441     struct open_named_pipe_request open_named_pipe_request;
3442     struct connect_named_pipe_request connect_named_pipe_request;
3443     struct wait_named_pipe_request wait_named_pipe_request;
3444     struct disconnect_named_pipe_request disconnect_named_pipe_request;
3445     struct get_named_pipe_info_request get_named_pipe_info_request;
3446     struct create_smb_request create_smb_request;
3447     struct get_smb_info_request get_smb_info_request;
3448     struct create_window_request create_window_request;
3449     struct link_window_request link_window_request;
3450     struct destroy_window_request destroy_window_request;
3451     struct set_window_owner_request set_window_owner_request;
3452     struct get_window_info_request get_window_info_request;
3453     struct set_window_info_request set_window_info_request;
3454     struct get_window_parents_request get_window_parents_request;
3455     struct get_window_children_request get_window_children_request;
3456     struct get_window_tree_request get_window_tree_request;
3457     struct set_window_rectangles_request set_window_rectangles_request;
3458     struct get_window_rectangles_request get_window_rectangles_request;
3459     struct get_window_text_request get_window_text_request;
3460     struct set_window_text_request set_window_text_request;
3461     struct inc_window_paint_count_request inc_window_paint_count_request;
3462     struct get_windows_offset_request get_windows_offset_request;
3463     struct set_window_property_request set_window_property_request;
3464     struct remove_window_property_request remove_window_property_request;
3465     struct get_window_property_request get_window_property_request;
3466     struct get_window_properties_request get_window_properties_request;
3467     struct attach_thread_input_request attach_thread_input_request;
3468     struct get_thread_input_request get_thread_input_request;
3469     struct get_key_state_request get_key_state_request;
3470     struct set_key_state_request set_key_state_request;
3471     struct set_foreground_window_request set_foreground_window_request;
3472     struct set_focus_window_request set_focus_window_request;
3473     struct set_active_window_request set_active_window_request;
3474     struct set_capture_window_request set_capture_window_request;
3475     struct set_caret_window_request set_caret_window_request;
3476     struct set_caret_info_request set_caret_info_request;
3477     struct set_hook_request set_hook_request;
3478     struct remove_hook_request remove_hook_request;
3479     struct start_hook_chain_request start_hook_chain_request;
3480     struct finish_hook_chain_request finish_hook_chain_request;
3481     struct get_next_hook_request get_next_hook_request;
3482     struct set_clipboard_info_request set_clipboard_info_request;
3483     struct open_token_request open_token_request;
3484     struct set_global_windows_request set_global_windows_request;
3485 };
3486 union generic_reply
3487 {
3488     struct request_max_size max_size;
3489     struct reply_header reply_header;
3490     struct new_process_reply new_process_reply;
3491     struct get_new_process_info_reply get_new_process_info_reply;
3492     struct new_thread_reply new_thread_reply;
3493     struct boot_done_reply boot_done_reply;
3494     struct init_process_reply init_process_reply;
3495     struct get_startup_info_reply get_startup_info_reply;
3496     struct init_process_done_reply init_process_done_reply;
3497     struct init_thread_reply init_thread_reply;
3498     struct terminate_process_reply terminate_process_reply;
3499     struct terminate_thread_reply terminate_thread_reply;
3500     struct get_process_info_reply get_process_info_reply;
3501     struct set_process_info_reply set_process_info_reply;
3502     struct get_thread_info_reply get_thread_info_reply;
3503     struct set_thread_info_reply set_thread_info_reply;
3504     struct get_dll_info_reply get_dll_info_reply;
3505     struct suspend_thread_reply suspend_thread_reply;
3506     struct resume_thread_reply resume_thread_reply;
3507     struct load_dll_reply load_dll_reply;
3508     struct unload_dll_reply unload_dll_reply;
3509     struct queue_apc_reply queue_apc_reply;
3510     struct get_apc_reply get_apc_reply;
3511     struct close_handle_reply close_handle_reply;
3512     struct set_handle_info_reply set_handle_info_reply;
3513     struct dup_handle_reply dup_handle_reply;
3514     struct open_process_reply open_process_reply;
3515     struct open_thread_reply open_thread_reply;
3516     struct select_reply select_reply;
3517     struct create_event_reply create_event_reply;
3518     struct event_op_reply event_op_reply;
3519     struct open_event_reply open_event_reply;
3520     struct create_mutex_reply create_mutex_reply;
3521     struct release_mutex_reply release_mutex_reply;
3522     struct open_mutex_reply open_mutex_reply;
3523     struct create_semaphore_reply create_semaphore_reply;
3524     struct release_semaphore_reply release_semaphore_reply;
3525     struct open_semaphore_reply open_semaphore_reply;
3526     struct create_file_reply create_file_reply;
3527     struct alloc_file_handle_reply alloc_file_handle_reply;
3528     struct get_handle_fd_reply get_handle_fd_reply;
3529     struct set_file_pointer_reply set_file_pointer_reply;
3530     struct truncate_file_reply truncate_file_reply;
3531     struct set_file_time_reply set_file_time_reply;
3532     struct flush_file_reply flush_file_reply;
3533     struct get_file_info_reply get_file_info_reply;
3534     struct lock_file_reply lock_file_reply;
3535     struct unlock_file_reply unlock_file_reply;
3536     struct create_socket_reply create_socket_reply;
3537     struct accept_socket_reply accept_socket_reply;
3538     struct set_socket_event_reply set_socket_event_reply;
3539     struct get_socket_event_reply get_socket_event_reply;
3540     struct enable_socket_event_reply enable_socket_event_reply;
3541     struct set_socket_deferred_reply set_socket_deferred_reply;
3542     struct alloc_console_reply alloc_console_reply;
3543     struct free_console_reply free_console_reply;
3544     struct get_console_renderer_events_reply get_console_renderer_events_reply;
3545     struct open_console_reply open_console_reply;
3546     struct get_console_wait_event_reply get_console_wait_event_reply;
3547     struct get_console_mode_reply get_console_mode_reply;
3548     struct set_console_mode_reply set_console_mode_reply;
3549     struct set_console_input_info_reply set_console_input_info_reply;
3550     struct get_console_input_info_reply get_console_input_info_reply;
3551     struct append_console_input_history_reply append_console_input_history_reply;
3552     struct get_console_input_history_reply get_console_input_history_reply;
3553     struct create_console_output_reply create_console_output_reply;
3554     struct set_console_output_info_reply set_console_output_info_reply;
3555     struct get_console_output_info_reply get_console_output_info_reply;
3556     struct write_console_input_reply write_console_input_reply;
3557     struct read_console_input_reply read_console_input_reply;
3558     struct write_console_output_reply write_console_output_reply;
3559     struct fill_console_output_reply fill_console_output_reply;
3560     struct read_console_output_reply read_console_output_reply;
3561     struct move_console_output_reply move_console_output_reply;
3562     struct send_console_signal_reply send_console_signal_reply;
3563     struct create_change_notification_reply create_change_notification_reply;
3564     struct next_change_notification_reply next_change_notification_reply;
3565     struct create_mapping_reply create_mapping_reply;
3566     struct open_mapping_reply open_mapping_reply;
3567     struct get_mapping_info_reply get_mapping_info_reply;
3568     struct create_device_reply create_device_reply;
3569     struct get_device_id_reply get_device_id_reply;
3570     struct create_snapshot_reply create_snapshot_reply;
3571     struct next_process_reply next_process_reply;
3572     struct next_thread_reply next_thread_reply;
3573     struct next_module_reply next_module_reply;
3574     struct wait_debug_event_reply wait_debug_event_reply;
3575     struct queue_exception_event_reply queue_exception_event_reply;
3576     struct get_exception_status_reply get_exception_status_reply;
3577     struct output_debug_string_reply output_debug_string_reply;
3578     struct continue_debug_event_reply continue_debug_event_reply;
3579     struct debug_process_reply debug_process_reply;
3580     struct debug_break_reply debug_break_reply;
3581     struct set_debugger_kill_on_exit_reply set_debugger_kill_on_exit_reply;
3582     struct read_process_memory_reply read_process_memory_reply;
3583     struct write_process_memory_reply write_process_memory_reply;
3584     struct create_key_reply create_key_reply;
3585     struct open_key_reply open_key_reply;
3586     struct delete_key_reply delete_key_reply;
3587     struct enum_key_reply enum_key_reply;
3588     struct set_key_value_reply set_key_value_reply;
3589     struct get_key_value_reply get_key_value_reply;
3590     struct enum_key_value_reply enum_key_value_reply;
3591     struct delete_key_value_reply delete_key_value_reply;
3592     struct load_registry_reply load_registry_reply;
3593     struct unload_registry_reply unload_registry_reply;
3594     struct save_registry_reply save_registry_reply;
3595     struct save_registry_atexit_reply save_registry_atexit_reply;
3596     struct set_registry_levels_reply set_registry_levels_reply;
3597     struct set_registry_notification_reply set_registry_notification_reply;
3598     struct create_timer_reply create_timer_reply;
3599     struct open_timer_reply open_timer_reply;
3600     struct set_timer_reply set_timer_reply;
3601     struct cancel_timer_reply cancel_timer_reply;
3602     struct get_thread_context_reply get_thread_context_reply;
3603     struct set_thread_context_reply set_thread_context_reply;
3604     struct get_selector_entry_reply get_selector_entry_reply;
3605     struct add_atom_reply add_atom_reply;
3606     struct delete_atom_reply delete_atom_reply;
3607     struct find_atom_reply find_atom_reply;
3608     struct get_atom_name_reply get_atom_name_reply;
3609     struct init_atom_table_reply init_atom_table_reply;
3610     struct get_msg_queue_reply get_msg_queue_reply;
3611     struct set_queue_mask_reply set_queue_mask_reply;
3612     struct get_queue_status_reply get_queue_status_reply;
3613     struct wait_input_idle_reply wait_input_idle_reply;
3614     struct send_message_reply send_message_reply;
3615     struct get_message_reply get_message_reply;
3616     struct reply_message_reply reply_message_reply;
3617     struct get_message_reply_reply get_message_reply_reply;
3618     struct set_win_timer_reply set_win_timer_reply;
3619     struct kill_win_timer_reply kill_win_timer_reply;
3620     struct create_serial_reply create_serial_reply;
3621     struct get_serial_info_reply get_serial_info_reply;
3622     struct set_serial_info_reply set_serial_info_reply;
3623     struct register_async_reply register_async_reply;
3624     struct create_named_pipe_reply create_named_pipe_reply;
3625     struct open_named_pipe_reply open_named_pipe_reply;
3626     struct connect_named_pipe_reply connect_named_pipe_reply;
3627     struct wait_named_pipe_reply wait_named_pipe_reply;
3628     struct disconnect_named_pipe_reply disconnect_named_pipe_reply;
3629     struct get_named_pipe_info_reply get_named_pipe_info_reply;
3630     struct create_smb_reply create_smb_reply;
3631     struct get_smb_info_reply get_smb_info_reply;
3632     struct create_window_reply create_window_reply;
3633     struct link_window_reply link_window_reply;
3634     struct destroy_window_reply destroy_window_reply;
3635     struct set_window_owner_reply set_window_owner_reply;
3636     struct get_window_info_reply get_window_info_reply;
3637     struct set_window_info_reply set_window_info_reply;
3638     struct get_window_parents_reply get_window_parents_reply;
3639     struct get_window_children_reply get_window_children_reply;
3640     struct get_window_tree_reply get_window_tree_reply;
3641     struct set_window_rectangles_reply set_window_rectangles_reply;
3642     struct get_window_rectangles_reply get_window_rectangles_reply;
3643     struct get_window_text_reply get_window_text_reply;
3644     struct set_window_text_reply set_window_text_reply;
3645     struct inc_window_paint_count_reply inc_window_paint_count_reply;
3646     struct get_windows_offset_reply get_windows_offset_reply;
3647     struct set_window_property_reply set_window_property_reply;
3648     struct remove_window_property_reply remove_window_property_reply;
3649     struct get_window_property_reply get_window_property_reply;
3650     struct get_window_properties_reply get_window_properties_reply;
3651     struct attach_thread_input_reply attach_thread_input_reply;
3652     struct get_thread_input_reply get_thread_input_reply;
3653     struct get_key_state_reply get_key_state_reply;
3654     struct set_key_state_reply set_key_state_reply;
3655     struct set_foreground_window_reply set_foreground_window_reply;
3656     struct set_focus_window_reply set_focus_window_reply;
3657     struct set_active_window_reply set_active_window_reply;
3658     struct set_capture_window_reply set_capture_window_reply;
3659     struct set_caret_window_reply set_caret_window_reply;
3660     struct set_caret_info_reply set_caret_info_reply;
3661     struct set_hook_reply set_hook_reply;
3662     struct remove_hook_reply remove_hook_reply;
3663     struct start_hook_chain_reply start_hook_chain_reply;
3664     struct finish_hook_chain_reply finish_hook_chain_reply;
3665     struct get_next_hook_reply get_next_hook_reply;
3666     struct set_clipboard_info_reply set_clipboard_info_reply;
3667     struct open_token_reply open_token_reply;
3668     struct set_global_windows_reply set_global_windows_reply;
3669 };
3670
3671 #define SERVER_PROTOCOL_VERSION 125
3672
3673 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */