The beginnings of math.h and float.h.
[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*        peb;
240     void*        ldt_copy;
241 };
242 struct init_process_reply
243 {
244     struct reply_header __header;
245     int          create_flags;
246     unsigned int server_start;
247     size_t       info_size;
248     obj_handle_t exe_file;
249     obj_handle_t hstdin;
250     obj_handle_t hstdout;
251     obj_handle_t hstderr;
252 };
253
254
255
256 struct get_startup_info_request
257 {
258     struct request_header __header;
259 };
260 struct get_startup_info_reply
261 {
262     struct reply_header __header;
263     /* VARARG(info,startup_info); */
264 };
265
266
267
268 struct init_process_done_request
269 {
270     struct request_header __header;
271     void*        module;
272     size_t       module_size;
273     void*        entry;
274     void*        name;
275     obj_handle_t exe_file;
276     int          gui;
277     /* VARARG(filename,unicode_str); */
278 };
279 struct init_process_done_reply
280 {
281     struct reply_header __header;
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          exit_code;
346     int          priority;
347     int          process_affinity;
348     int          system_affinity;
349 };
350
351
352
353 struct set_process_info_request
354 {
355     struct request_header __header;
356     obj_handle_t handle;
357     int          mask;
358     int          priority;
359     int          affinity;
360 };
361 struct set_process_info_reply
362 {
363     struct reply_header __header;
364 };
365 #define SET_PROCESS_INFO_PRIORITY 0x01
366 #define SET_PROCESS_INFO_AFFINITY 0x02
367
368
369
370 struct get_thread_info_request
371 {
372     struct request_header __header;
373     obj_handle_t handle;
374     thread_id_t  tid_in;
375 };
376 struct get_thread_info_reply
377 {
378     struct reply_header __header;
379     process_id_t pid;
380     thread_id_t  tid;
381     void*        teb;
382     int          exit_code;
383     int          priority;
384     int          affinity;
385     time_t       creation_time;
386     time_t       exit_time;
387 };
388
389
390
391 struct set_thread_info_request
392 {
393     struct request_header __header;
394     obj_handle_t handle;
395     int          mask;
396     int          priority;
397     int          affinity;
398 };
399 struct set_thread_info_reply
400 {
401     struct reply_header __header;
402 };
403 #define SET_THREAD_INFO_PRIORITY 0x01
404 #define SET_THREAD_INFO_AFFINITY 0x02
405
406
407
408 struct get_dll_info_request
409 {
410     struct request_header __header;
411     obj_handle_t handle;
412     void*        base_address;
413 };
414 struct get_dll_info_reply
415 {
416     struct reply_header __header;
417     size_t       size;
418     void*        entry_point;
419     /* VARARG(filename,unicode_str); */
420 };
421
422
423
424 struct suspend_thread_request
425 {
426     struct request_header __header;
427     obj_handle_t handle;
428 };
429 struct suspend_thread_reply
430 {
431     struct reply_header __header;
432     int          count;
433 };
434
435
436
437 struct resume_thread_request
438 {
439     struct request_header __header;
440     obj_handle_t handle;
441 };
442 struct resume_thread_reply
443 {
444     struct reply_header __header;
445     int          count;
446 };
447
448
449
450 struct load_dll_request
451 {
452     struct request_header __header;
453     obj_handle_t handle;
454     void*        base;
455     size_t       size;
456     int          dbg_offset;
457     int          dbg_size;
458     void*        name;
459     /* VARARG(filename,unicode_str); */
460 };
461 struct load_dll_reply
462 {
463     struct reply_header __header;
464 };
465
466
467
468 struct unload_dll_request
469 {
470     struct request_header __header;
471     void*        base;
472 };
473 struct unload_dll_reply
474 {
475     struct reply_header __header;
476 };
477
478
479
480 struct queue_apc_request
481 {
482     struct request_header __header;
483     obj_handle_t handle;
484     int          user;
485     void*        func;
486     void*        arg1;
487     void*        arg2;
488     void*        arg3;
489 };
490 struct queue_apc_reply
491 {
492     struct reply_header __header;
493 };
494
495
496
497 struct get_apc_request
498 {
499     struct request_header __header;
500     int          alertable;
501 };
502 struct get_apc_reply
503 {
504     struct reply_header __header;
505     void*        func;
506     int          type;
507     void*        arg1;
508     void*        arg2;
509     void*        arg3;
510 };
511 enum apc_type { APC_NONE, APC_USER, APC_TIMER, APC_ASYNC, APC_ASYNC_IO };
512
513
514
515 struct close_handle_request
516 {
517     struct request_header __header;
518     obj_handle_t handle;
519 };
520 struct close_handle_reply
521 {
522     struct reply_header __header;
523     int          fd;
524 };
525
526
527
528 struct set_handle_info_request
529 {
530     struct request_header __header;
531     obj_handle_t handle;
532     int          flags;
533     int          mask;
534     int          fd;
535 };
536 struct set_handle_info_reply
537 {
538     struct reply_header __header;
539     int          old_flags;
540     int          cur_fd;
541 };
542
543
544
545 struct dup_handle_request
546 {
547     struct request_header __header;
548     obj_handle_t src_process;
549     obj_handle_t src_handle;
550     obj_handle_t dst_process;
551     unsigned int access;
552     int          inherit;
553     int          options;
554 };
555 struct dup_handle_reply
556 {
557     struct reply_header __header;
558     obj_handle_t handle;
559     int          fd;
560 };
561 #define DUP_HANDLE_CLOSE_SOURCE  DUPLICATE_CLOSE_SOURCE
562 #define DUP_HANDLE_SAME_ACCESS   DUPLICATE_SAME_ACCESS
563 #define DUP_HANDLE_MAKE_GLOBAL   0x80000000
564
565
566
567 struct open_process_request
568 {
569     struct request_header __header;
570     process_id_t pid;
571     unsigned int access;
572     int          inherit;
573 };
574 struct open_process_reply
575 {
576     struct reply_header __header;
577     obj_handle_t handle;
578 };
579
580
581
582 struct open_thread_request
583 {
584     struct request_header __header;
585     thread_id_t  tid;
586     unsigned int access;
587     int          inherit;
588 };
589 struct open_thread_reply
590 {
591     struct reply_header __header;
592     obj_handle_t handle;
593 };
594
595
596
597 struct select_request
598 {
599     struct request_header __header;
600     int          flags;
601     void*        cookie;
602     abs_time_t   timeout;
603     /* VARARG(handles,handles); */
604 };
605 struct select_reply
606 {
607     struct reply_header __header;
608 };
609 #define SELECT_ALL           1
610 #define SELECT_ALERTABLE     2
611 #define SELECT_INTERRUPTIBLE 4
612 #define SELECT_TIMEOUT       8
613
614
615
616 struct create_event_request
617 {
618     struct request_header __header;
619     int          manual_reset;
620     int          initial_state;
621     int          inherit;
622     /* VARARG(name,unicode_str); */
623 };
624 struct create_event_reply
625 {
626     struct reply_header __header;
627     obj_handle_t handle;
628 };
629
630
631 struct event_op_request
632 {
633     struct request_header __header;
634     obj_handle_t  handle;
635     int           op;
636 };
637 struct event_op_reply
638 {
639     struct reply_header __header;
640 };
641 enum event_op { PULSE_EVENT, SET_EVENT, RESET_EVENT };
642
643
644
645 struct open_event_request
646 {
647     struct request_header __header;
648     unsigned int access;
649     int          inherit;
650     /* VARARG(name,unicode_str); */
651 };
652 struct open_event_reply
653 {
654     struct reply_header __header;
655     obj_handle_t handle;
656 };
657
658
659
660 struct create_mutex_request
661 {
662     struct request_header __header;
663     int          owned;
664     int          inherit;
665     /* VARARG(name,unicode_str); */
666 };
667 struct create_mutex_reply
668 {
669     struct reply_header __header;
670     obj_handle_t handle;
671 };
672
673
674
675 struct release_mutex_request
676 {
677     struct request_header __header;
678     obj_handle_t handle;
679 };
680 struct release_mutex_reply
681 {
682     struct reply_header __header;
683 };
684
685
686
687 struct open_mutex_request
688 {
689     struct request_header __header;
690     unsigned int access;
691     int          inherit;
692     /* VARARG(name,unicode_str); */
693 };
694 struct open_mutex_reply
695 {
696     struct reply_header __header;
697     obj_handle_t handle;
698 };
699
700
701
702 struct create_semaphore_request
703 {
704     struct request_header __header;
705     unsigned int initial;
706     unsigned int max;
707     int          inherit;
708     /* VARARG(name,unicode_str); */
709 };
710 struct create_semaphore_reply
711 {
712     struct reply_header __header;
713     obj_handle_t handle;
714 };
715
716
717
718 struct release_semaphore_request
719 {
720     struct request_header __header;
721     obj_handle_t handle;
722     unsigned int count;
723 };
724 struct release_semaphore_reply
725 {
726     struct reply_header __header;
727     unsigned int prev_count;
728 };
729
730
731
732 struct open_semaphore_request
733 {
734     struct request_header __header;
735     unsigned int access;
736     int          inherit;
737     /* VARARG(name,unicode_str); */
738 };
739 struct open_semaphore_reply
740 {
741     struct reply_header __header;
742     obj_handle_t handle;
743 };
744
745
746
747 struct create_file_request
748 {
749     struct request_header __header;
750     unsigned int access;
751     int          inherit;
752     unsigned int sharing;
753     int          create;
754     unsigned int options;
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 #define SNAP_HEAPLIST   0x00000001
1509 #define SNAP_PROCESS    0x00000002
1510 #define SNAP_THREAD     0x00000004
1511 #define SNAP_MODULE     0x00000008
1512
1513 struct create_snapshot_request
1514 {
1515     struct request_header __header;
1516     int          inherit;
1517     int          flags;
1518     process_id_t pid;
1519 };
1520 struct create_snapshot_reply
1521 {
1522     struct reply_header __header;
1523     obj_handle_t handle;
1524 };
1525
1526
1527
1528 struct next_process_request
1529 {
1530     struct request_header __header;
1531     obj_handle_t handle;
1532     int          reset;
1533 };
1534 struct next_process_reply
1535 {
1536     struct reply_header __header;
1537     int          count;
1538     process_id_t pid;
1539     process_id_t ppid;
1540     void*        heap;
1541     void*        module;
1542     int          threads;
1543     int          priority;
1544     int          handles;
1545     /* VARARG(filename,unicode_str); */
1546 };
1547
1548
1549
1550 struct next_thread_request
1551 {
1552     struct request_header __header;
1553     obj_handle_t handle;
1554     int          reset;
1555 };
1556 struct next_thread_reply
1557 {
1558     struct reply_header __header;
1559     int          count;
1560     process_id_t pid;
1561     thread_id_t  tid;
1562     int          base_pri;
1563     int          delta_pri;
1564 };
1565
1566
1567
1568 struct next_module_request
1569 {
1570     struct request_header __header;
1571     obj_handle_t handle;
1572     int          reset;
1573 };
1574 struct next_module_reply
1575 {
1576     struct reply_header __header;
1577     process_id_t pid;
1578     void*        base;
1579     size_t       size;
1580     /* VARARG(filename,unicode_str); */
1581 };
1582
1583
1584
1585 struct wait_debug_event_request
1586 {
1587     struct request_header __header;
1588     int           get_handle;
1589 };
1590 struct wait_debug_event_reply
1591 {
1592     struct reply_header __header;
1593     process_id_t  pid;
1594     thread_id_t   tid;
1595     obj_handle_t  wait;
1596     /* VARARG(event,debug_event); */
1597 };
1598
1599
1600
1601 struct queue_exception_event_request
1602 {
1603     struct request_header __header;
1604     int              first;
1605     /* VARARG(record,exc_event); */
1606 };
1607 struct queue_exception_event_reply
1608 {
1609     struct reply_header __header;
1610     obj_handle_t     handle;
1611 };
1612
1613
1614
1615 struct get_exception_status_request
1616 {
1617     struct request_header __header;
1618     obj_handle_t     handle;
1619 };
1620 struct get_exception_status_reply
1621 {
1622     struct reply_header __header;
1623     int              status;
1624     /* VARARG(context,context); */
1625 };
1626
1627
1628
1629 struct output_debug_string_request
1630 {
1631     struct request_header __header;
1632     void*         string;
1633     int           unicode;
1634     int           length;
1635 };
1636 struct output_debug_string_reply
1637 {
1638     struct reply_header __header;
1639 };
1640
1641
1642
1643 struct continue_debug_event_request
1644 {
1645     struct request_header __header;
1646     process_id_t pid;
1647     thread_id_t  tid;
1648     int          status;
1649 };
1650 struct continue_debug_event_reply
1651 {
1652     struct reply_header __header;
1653 };
1654
1655
1656
1657 struct debug_process_request
1658 {
1659     struct request_header __header;
1660     process_id_t pid;
1661     int          attach;
1662 };
1663 struct debug_process_reply
1664 {
1665     struct reply_header __header;
1666 };
1667
1668
1669
1670 struct debug_break_request
1671 {
1672     struct request_header __header;
1673     obj_handle_t handle;
1674 };
1675 struct debug_break_reply
1676 {
1677     struct reply_header __header;
1678     int          self;
1679 };
1680
1681
1682
1683 struct set_debugger_kill_on_exit_request
1684 {
1685     struct request_header __header;
1686     int          kill_on_exit;
1687 };
1688 struct set_debugger_kill_on_exit_reply
1689 {
1690     struct reply_header __header;
1691 };
1692
1693
1694
1695 struct read_process_memory_request
1696 {
1697     struct request_header __header;
1698     obj_handle_t handle;
1699     void*        addr;
1700 };
1701 struct read_process_memory_reply
1702 {
1703     struct reply_header __header;
1704     /* VARARG(data,bytes); */
1705 };
1706
1707
1708
1709 struct write_process_memory_request
1710 {
1711     struct request_header __header;
1712     obj_handle_t handle;
1713     void*        addr;
1714     unsigned int first_mask;
1715     unsigned int last_mask;
1716     /* VARARG(data,bytes); */
1717 };
1718 struct write_process_memory_reply
1719 {
1720     struct reply_header __header;
1721 };
1722
1723
1724
1725 struct create_key_request
1726 {
1727     struct request_header __header;
1728     obj_handle_t parent;
1729     unsigned int access;
1730     unsigned int options;
1731     time_t       modif;
1732     size_t       namelen;
1733     /* VARARG(name,unicode_str,namelen); */
1734     /* VARARG(class,unicode_str); */
1735 };
1736 struct create_key_reply
1737 {
1738     struct reply_header __header;
1739     obj_handle_t hkey;
1740     int          created;
1741 };
1742
1743
1744 struct open_key_request
1745 {
1746     struct request_header __header;
1747     obj_handle_t parent;
1748     unsigned int access;
1749     /* VARARG(name,unicode_str); */
1750 };
1751 struct open_key_reply
1752 {
1753     struct reply_header __header;
1754     obj_handle_t hkey;
1755 };
1756
1757
1758
1759 struct delete_key_request
1760 {
1761     struct request_header __header;
1762     obj_handle_t hkey;
1763 };
1764 struct delete_key_reply
1765 {
1766     struct reply_header __header;
1767 };
1768
1769
1770
1771 struct flush_key_request
1772 {
1773     struct request_header __header;
1774     obj_handle_t hkey;
1775 };
1776 struct flush_key_reply
1777 {
1778     struct reply_header __header;
1779 };
1780
1781
1782
1783 struct enum_key_request
1784 {
1785     struct request_header __header;
1786     obj_handle_t hkey;
1787     int          index;
1788     int          info_class;
1789 };
1790 struct enum_key_reply
1791 {
1792     struct reply_header __header;
1793     int          subkeys;
1794     int          max_subkey;
1795     int          max_class;
1796     int          values;
1797     int          max_value;
1798     int          max_data;
1799     time_t       modif;
1800     size_t       total;
1801     size_t       namelen;
1802     /* VARARG(name,unicode_str,namelen); */
1803     /* VARARG(class,unicode_str); */
1804 };
1805
1806
1807
1808 struct set_key_value_request
1809 {
1810     struct request_header __header;
1811     obj_handle_t hkey;
1812     int          type;
1813     size_t       namelen;
1814     /* VARARG(name,unicode_str,namelen); */
1815     /* VARARG(data,bytes); */
1816 };
1817 struct set_key_value_reply
1818 {
1819     struct reply_header __header;
1820 };
1821
1822
1823
1824 struct get_key_value_request
1825 {
1826     struct request_header __header;
1827     obj_handle_t hkey;
1828     /* VARARG(name,unicode_str); */
1829 };
1830 struct get_key_value_reply
1831 {
1832     struct reply_header __header;
1833     int          type;
1834     size_t       total;
1835     /* VARARG(data,bytes); */
1836 };
1837
1838
1839
1840 struct enum_key_value_request
1841 {
1842     struct request_header __header;
1843     obj_handle_t hkey;
1844     int          index;
1845     int          info_class;
1846 };
1847 struct enum_key_value_reply
1848 {
1849     struct reply_header __header;
1850     int          type;
1851     size_t       total;
1852     size_t       namelen;
1853     /* VARARG(name,unicode_str,namelen); */
1854     /* VARARG(data,bytes); */
1855 };
1856
1857
1858
1859 struct delete_key_value_request
1860 {
1861     struct request_header __header;
1862     obj_handle_t hkey;
1863     /* VARARG(name,unicode_str); */
1864 };
1865 struct delete_key_value_reply
1866 {
1867     struct reply_header __header;
1868 };
1869
1870
1871
1872 struct load_registry_request
1873 {
1874     struct request_header __header;
1875     obj_handle_t hkey;
1876     obj_handle_t file;
1877     /* VARARG(name,unicode_str); */
1878 };
1879 struct load_registry_reply
1880 {
1881     struct reply_header __header;
1882 };
1883
1884
1885
1886 struct unload_registry_request
1887 {
1888     struct request_header __header;
1889     obj_handle_t hkey;
1890 };
1891 struct unload_registry_reply
1892 {
1893     struct reply_header __header;
1894 };
1895
1896
1897
1898 struct save_registry_request
1899 {
1900     struct request_header __header;
1901     obj_handle_t hkey;
1902     obj_handle_t file;
1903 };
1904 struct save_registry_reply
1905 {
1906     struct reply_header __header;
1907 };
1908
1909
1910
1911 struct save_registry_atexit_request
1912 {
1913     struct request_header __header;
1914     obj_handle_t hkey;
1915     /* VARARG(file,string); */
1916 };
1917 struct save_registry_atexit_reply
1918 {
1919     struct reply_header __header;
1920 };
1921
1922
1923
1924 struct set_registry_levels_request
1925 {
1926     struct request_header __header;
1927     int          current;
1928     int          saving;
1929     int          period;
1930 };
1931 struct set_registry_levels_reply
1932 {
1933     struct reply_header __header;
1934 };
1935
1936
1937 struct set_registry_notification_request
1938 {
1939     struct request_header __header;
1940     obj_handle_t hkey;
1941     obj_handle_t event;
1942     int          subtree;
1943     unsigned int filter;
1944 };
1945 struct set_registry_notification_reply
1946 {
1947     struct reply_header __header;
1948 };
1949
1950
1951
1952 struct create_timer_request
1953 {
1954     struct request_header __header;
1955     int          inherit;
1956     int          manual;
1957     /* VARARG(name,unicode_str); */
1958 };
1959 struct create_timer_reply
1960 {
1961     struct reply_header __header;
1962     obj_handle_t handle;
1963 };
1964
1965
1966
1967 struct open_timer_request
1968 {
1969     struct request_header __header;
1970     unsigned int access;
1971     int          inherit;
1972     /* VARARG(name,unicode_str); */
1973 };
1974 struct open_timer_reply
1975 {
1976     struct reply_header __header;
1977     obj_handle_t handle;
1978 };
1979
1980
1981 struct set_timer_request
1982 {
1983     struct request_header __header;
1984     obj_handle_t handle;
1985     abs_time_t   expire;
1986     int          period;
1987     void*        callback;
1988     void*        arg;
1989 };
1990 struct set_timer_reply
1991 {
1992     struct reply_header __header;
1993     int          signaled;
1994 };
1995
1996
1997 struct cancel_timer_request
1998 {
1999     struct request_header __header;
2000     obj_handle_t handle;
2001 };
2002 struct cancel_timer_reply
2003 {
2004     struct reply_header __header;
2005      int         signaled;
2006 };
2007
2008
2009
2010 struct get_thread_context_request
2011 {
2012     struct request_header __header;
2013     obj_handle_t handle;
2014     unsigned int flags;
2015 };
2016 struct get_thread_context_reply
2017 {
2018     struct reply_header __header;
2019     /* VARARG(context,context); */
2020 };
2021
2022
2023
2024 struct set_thread_context_request
2025 {
2026     struct request_header __header;
2027     obj_handle_t handle;
2028     unsigned int flags;
2029     /* VARARG(context,context); */
2030 };
2031 struct set_thread_context_reply
2032 {
2033     struct reply_header __header;
2034 };
2035
2036
2037
2038 struct get_selector_entry_request
2039 {
2040     struct request_header __header;
2041     obj_handle_t  handle;
2042     int           entry;
2043 };
2044 struct get_selector_entry_reply
2045 {
2046     struct reply_header __header;
2047     unsigned int  base;
2048     unsigned int  limit;
2049     unsigned char flags;
2050 };
2051
2052
2053
2054 struct add_atom_request
2055 {
2056     struct request_header __header;
2057     int           local;
2058     /* VARARG(name,unicode_str); */
2059 };
2060 struct add_atom_reply
2061 {
2062     struct reply_header __header;
2063     atom_t        atom;
2064 };
2065
2066
2067
2068 struct delete_atom_request
2069 {
2070     struct request_header __header;
2071     atom_t        atom;
2072     int           local;
2073 };
2074 struct delete_atom_reply
2075 {
2076     struct reply_header __header;
2077 };
2078
2079
2080
2081 struct find_atom_request
2082 {
2083     struct request_header __header;
2084     int          local;
2085     /* VARARG(name,unicode_str); */
2086 };
2087 struct find_atom_reply
2088 {
2089     struct reply_header __header;
2090     atom_t       atom;
2091 };
2092
2093
2094
2095 struct get_atom_name_request
2096 {
2097     struct request_header __header;
2098     atom_t       atom;
2099     int          local;
2100 };
2101 struct get_atom_name_reply
2102 {
2103     struct reply_header __header;
2104     int          count;
2105     /* VARARG(name,unicode_str); */
2106 };
2107
2108
2109
2110 struct init_atom_table_request
2111 {
2112     struct request_header __header;
2113     int          entries;
2114 };
2115 struct init_atom_table_reply
2116 {
2117     struct reply_header __header;
2118 };
2119
2120
2121
2122 struct get_msg_queue_request
2123 {
2124     struct request_header __header;
2125 };
2126 struct get_msg_queue_reply
2127 {
2128     struct reply_header __header;
2129     obj_handle_t handle;
2130 };
2131
2132
2133
2134 struct set_queue_mask_request
2135 {
2136     struct request_header __header;
2137     unsigned int wake_mask;
2138     unsigned int changed_mask;
2139     int          skip_wait;
2140 };
2141 struct set_queue_mask_reply
2142 {
2143     struct reply_header __header;
2144     unsigned int wake_bits;
2145     unsigned int changed_bits;
2146 };
2147
2148
2149
2150 struct get_queue_status_request
2151 {
2152     struct request_header __header;
2153     int          clear;
2154 };
2155 struct get_queue_status_reply
2156 {
2157     struct reply_header __header;
2158     unsigned int wake_bits;
2159     unsigned int changed_bits;
2160 };
2161
2162
2163
2164 struct wait_input_idle_request
2165 {
2166     struct request_header __header;
2167     obj_handle_t handle;
2168     int          timeout;
2169 };
2170 struct wait_input_idle_reply
2171 {
2172     struct reply_header __header;
2173     obj_handle_t event;
2174 };
2175
2176
2177
2178 struct send_message_request
2179 {
2180     struct request_header __header;
2181     thread_id_t     id;
2182     int             type;
2183     int             flags;
2184     user_handle_t   win;
2185     unsigned int    msg;
2186     unsigned int    wparam;
2187     unsigned int    lparam;
2188     int             x;
2189     int             y;
2190     unsigned int    time;
2191     unsigned int    info;
2192     int             timeout;
2193     void*           callback;
2194     /* VARARG(data,bytes); */
2195 };
2196 struct send_message_reply
2197 {
2198     struct reply_header __header;
2199 };
2200
2201 enum message_type
2202 {
2203     MSG_ASCII,
2204     MSG_UNICODE,
2205     MSG_NOTIFY,
2206     MSG_CALLBACK,
2207     MSG_CALLBACK_RESULT,
2208     MSG_OTHER_PROCESS,
2209     MSG_POSTED,
2210     MSG_HARDWARE
2211 };
2212 #define SEND_MSG_ABORT_IF_HUNG  0x01
2213
2214
2215
2216 struct get_message_request
2217 {
2218     struct request_header __header;
2219     int             flags;
2220     user_handle_t   get_win;
2221     unsigned int    get_first;
2222     unsigned int    get_last;
2223 };
2224 struct get_message_reply
2225 {
2226     struct reply_header __header;
2227     int             type;
2228     user_handle_t   win;
2229     unsigned int    msg;
2230     unsigned int    wparam;
2231     unsigned int    lparam;
2232     int             x;
2233     int             y;
2234     unsigned int    time;
2235     unsigned int    info;
2236     size_t          total;
2237     /* VARARG(data,bytes); */
2238 };
2239 #define GET_MSG_REMOVE      1
2240 #define GET_MSG_SENT_ONLY   2
2241
2242
2243 struct reply_message_request
2244 {
2245     struct request_header __header;
2246     int             type;
2247     unsigned int    result;
2248     int             remove;
2249     /* VARARG(data,bytes); */
2250 };
2251 struct reply_message_reply
2252 {
2253     struct reply_header __header;
2254 };
2255
2256
2257
2258 struct get_message_reply_request
2259 {
2260     struct request_header __header;
2261     int             cancel;
2262 };
2263 struct get_message_reply_reply
2264 {
2265     struct reply_header __header;
2266     unsigned int    result;
2267     /* VARARG(data,bytes); */
2268 };
2269
2270
2271
2272 struct set_win_timer_request
2273 {
2274     struct request_header __header;
2275     user_handle_t   win;
2276     unsigned int    msg;
2277     unsigned int    id;
2278     unsigned int    rate;
2279     unsigned int    lparam;
2280 };
2281 struct set_win_timer_reply
2282 {
2283     struct reply_header __header;
2284 };
2285
2286
2287
2288 struct kill_win_timer_request
2289 {
2290     struct request_header __header;
2291     user_handle_t   win;
2292     unsigned int    msg;
2293     unsigned int    id;
2294 };
2295 struct kill_win_timer_reply
2296 {
2297     struct reply_header __header;
2298 };
2299
2300
2301
2302 struct create_serial_request
2303 {
2304     struct request_header __header;
2305     unsigned int access;
2306     int          inherit;
2307     unsigned int attributes;
2308     unsigned int sharing;
2309     /* VARARG(name,string); */
2310 };
2311 struct create_serial_reply
2312 {
2313     struct reply_header __header;
2314     obj_handle_t handle;
2315 };
2316
2317
2318
2319 struct get_serial_info_request
2320 {
2321     struct request_header __header;
2322     obj_handle_t handle;
2323 };
2324 struct get_serial_info_reply
2325 {
2326     struct reply_header __header;
2327     unsigned int readinterval;
2328     unsigned int readconst;
2329     unsigned int readmult;
2330     unsigned int writeconst;
2331     unsigned int writemult;
2332     unsigned int eventmask;
2333     unsigned int commerror;
2334 };
2335
2336
2337
2338 struct set_serial_info_request
2339 {
2340     struct request_header __header;
2341     obj_handle_t handle;
2342     int          flags;
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 struct set_serial_info_reply
2352 {
2353     struct reply_header __header;
2354 };
2355 #define SERIALINFO_SET_TIMEOUTS  0x01
2356 #define SERIALINFO_SET_MASK      0x02
2357 #define SERIALINFO_SET_ERROR     0x04
2358
2359
2360
2361 struct register_async_request
2362 {
2363     struct request_header __header;
2364     obj_handle_t handle;
2365     int          type;
2366     void*        overlapped;
2367     int          count;
2368     unsigned int status;
2369 };
2370 struct register_async_reply
2371 {
2372     struct reply_header __header;
2373 };
2374 #define ASYNC_TYPE_NONE  0x00
2375 #define ASYNC_TYPE_READ  0x01
2376 #define ASYNC_TYPE_WRITE 0x02
2377 #define ASYNC_TYPE_WAIT  0x03
2378
2379
2380
2381 struct create_named_pipe_request
2382 {
2383     struct request_header __header;
2384     unsigned int   openmode;
2385     unsigned int   pipemode;
2386     unsigned int   maxinstances;
2387     unsigned int   outsize;
2388     unsigned int   insize;
2389     unsigned int   timeout;
2390     int            inherit;
2391     /* VARARG(name,unicode_str); */
2392 };
2393 struct create_named_pipe_reply
2394 {
2395     struct reply_header __header;
2396     obj_handle_t   handle;
2397 };
2398
2399
2400
2401 struct open_named_pipe_request
2402 {
2403     struct request_header __header;
2404     unsigned int   access;
2405     int            inherit;
2406     /* VARARG(name,unicode_str); */
2407 };
2408 struct open_named_pipe_reply
2409 {
2410     struct reply_header __header;
2411     obj_handle_t   handle;
2412 };
2413
2414
2415
2416 struct connect_named_pipe_request
2417 {
2418     struct request_header __header;
2419     obj_handle_t   handle;
2420     void*          overlapped;
2421     void*          func;
2422 };
2423 struct connect_named_pipe_reply
2424 {
2425     struct reply_header __header;
2426 };
2427
2428
2429
2430 struct wait_named_pipe_request
2431 {
2432     struct request_header __header;
2433     unsigned int   timeout;
2434     void*          overlapped;
2435     void*          func;
2436     /* VARARG(name,unicode_str); */
2437 };
2438 struct wait_named_pipe_reply
2439 {
2440     struct reply_header __header;
2441 };
2442
2443
2444
2445 struct disconnect_named_pipe_request
2446 {
2447     struct request_header __header;
2448     obj_handle_t   handle;
2449 };
2450 struct disconnect_named_pipe_reply
2451 {
2452     struct reply_header __header;
2453     int            fd;
2454 };
2455
2456
2457 struct get_named_pipe_info_request
2458 {
2459     struct request_header __header;
2460     obj_handle_t   handle;
2461 };
2462 struct get_named_pipe_info_reply
2463 {
2464     struct reply_header __header;
2465     unsigned int   flags;
2466     unsigned int   maxinstances;
2467     unsigned int   outsize;
2468     unsigned int   insize;
2469 };
2470
2471
2472 struct create_smb_request
2473 {
2474     struct request_header __header;
2475     int            fd;
2476     unsigned int   tree_id;
2477     unsigned int   user_id;
2478     unsigned int   file_id;
2479     unsigned int   dialect;
2480 };
2481 struct create_smb_reply
2482 {
2483     struct reply_header __header;
2484     obj_handle_t   handle;
2485 };
2486
2487
2488 struct get_smb_info_request
2489 {
2490     struct request_header __header;
2491     obj_handle_t   handle;
2492     unsigned int   flags;
2493     unsigned int   offset;
2494 };
2495 struct get_smb_info_reply
2496 {
2497     struct reply_header __header;
2498     unsigned int   tree_id;
2499     unsigned int   user_id;
2500     unsigned int   dialect;
2501     unsigned int   file_id;
2502     unsigned int   offset;
2503 };
2504 #define SMBINFO_SET_OFFSET    0x01
2505
2506
2507
2508 struct create_window_request
2509 {
2510     struct request_header __header;
2511     user_handle_t  parent;
2512     user_handle_t  owner;
2513     atom_t         atom;
2514     void*          instance;
2515 };
2516 struct create_window_reply
2517 {
2518     struct reply_header __header;
2519     user_handle_t  handle;
2520     int            extra;
2521     void*          class_ptr;
2522 };
2523
2524
2525
2526 struct link_window_request
2527 {
2528     struct request_header __header;
2529     user_handle_t  handle;
2530     user_handle_t  parent;
2531     user_handle_t  previous;
2532 };
2533 struct link_window_reply
2534 {
2535     struct reply_header __header;
2536     user_handle_t  full_parent;
2537 };
2538
2539
2540
2541 struct destroy_window_request
2542 {
2543     struct request_header __header;
2544     user_handle_t  handle;
2545 };
2546 struct destroy_window_reply
2547 {
2548     struct reply_header __header;
2549 };
2550
2551
2552
2553 struct set_window_owner_request
2554 {
2555     struct request_header __header;
2556     user_handle_t  handle;
2557     user_handle_t  owner;
2558 };
2559 struct set_window_owner_reply
2560 {
2561     struct reply_header __header;
2562     user_handle_t  full_owner;
2563     user_handle_t  prev_owner;
2564 };
2565
2566
2567
2568 struct get_window_info_request
2569 {
2570     struct request_header __header;
2571     user_handle_t  handle;
2572 };
2573 struct get_window_info_reply
2574 {
2575     struct reply_header __header;
2576     user_handle_t  full_handle;
2577     user_handle_t  last_active;
2578     process_id_t   pid;
2579     thread_id_t    tid;
2580     atom_t         atom;
2581 };
2582
2583
2584
2585 struct set_window_info_request
2586 {
2587     struct request_header __header;
2588     user_handle_t  handle;
2589     unsigned int   flags;
2590     unsigned int   style;
2591     unsigned int   ex_style;
2592     unsigned int   id;
2593     void*          instance;
2594     void*          user_data;
2595     int            extra_offset;
2596     size_t         extra_size;
2597     unsigned int   extra_value;
2598 };
2599 struct set_window_info_reply
2600 {
2601     struct reply_header __header;
2602     unsigned int   old_style;
2603     unsigned int   old_ex_style;
2604     unsigned int   old_id;
2605     void*          old_instance;
2606     void*          old_user_data;
2607     unsigned int   old_extra_value;
2608 };
2609 #define SET_WIN_STYLE     0x01
2610 #define SET_WIN_EXSTYLE   0x02
2611 #define SET_WIN_ID        0x04
2612 #define SET_WIN_INSTANCE  0x08
2613 #define SET_WIN_USERDATA  0x10
2614 #define SET_WIN_EXTRA     0x20
2615
2616
2617
2618 struct get_window_parents_request
2619 {
2620     struct request_header __header;
2621     user_handle_t  handle;
2622 };
2623 struct get_window_parents_reply
2624 {
2625     struct reply_header __header;
2626     int            count;
2627     /* VARARG(parents,user_handles); */
2628 };
2629
2630
2631
2632 struct get_window_children_request
2633 {
2634     struct request_header __header;
2635     user_handle_t  parent;
2636     atom_t         atom;
2637     thread_id_t    tid;
2638 };
2639 struct get_window_children_reply
2640 {
2641     struct reply_header __header;
2642     int            count;
2643     /* VARARG(children,user_handles); */
2644 };
2645
2646
2647
2648 struct get_window_tree_request
2649 {
2650     struct request_header __header;
2651     user_handle_t  handle;
2652 };
2653 struct get_window_tree_reply
2654 {
2655     struct reply_header __header;
2656     user_handle_t  parent;
2657     user_handle_t  owner;
2658     user_handle_t  next_sibling;
2659     user_handle_t  prev_sibling;
2660     user_handle_t  first_sibling;
2661     user_handle_t  last_sibling;
2662     user_handle_t  first_child;
2663     user_handle_t  last_child;
2664 };
2665
2666
2667 struct set_window_rectangles_request
2668 {
2669     struct request_header __header;
2670     user_handle_t  handle;
2671     rectangle_t    window;
2672     rectangle_t    client;
2673 };
2674 struct set_window_rectangles_reply
2675 {
2676     struct reply_header __header;
2677 };
2678
2679
2680
2681 struct get_window_rectangles_request
2682 {
2683     struct request_header __header;
2684     user_handle_t  handle;
2685 };
2686 struct get_window_rectangles_reply
2687 {
2688     struct reply_header __header;
2689     rectangle_t    window;
2690     rectangle_t    client;
2691 };
2692
2693
2694
2695 struct get_window_text_request
2696 {
2697     struct request_header __header;
2698     user_handle_t  handle;
2699 };
2700 struct get_window_text_reply
2701 {
2702     struct reply_header __header;
2703     /* VARARG(text,unicode_str); */
2704 };
2705
2706
2707
2708 struct set_window_text_request
2709 {
2710     struct request_header __header;
2711     user_handle_t  handle;
2712     /* VARARG(text,unicode_str); */
2713 };
2714 struct set_window_text_reply
2715 {
2716     struct reply_header __header;
2717 };
2718
2719
2720
2721 struct inc_window_paint_count_request
2722 {
2723     struct request_header __header;
2724     user_handle_t  handle;
2725     int             incr;
2726 };
2727 struct inc_window_paint_count_reply
2728 {
2729     struct reply_header __header;
2730 };
2731
2732
2733
2734 struct get_windows_offset_request
2735 {
2736     struct request_header __header;
2737     user_handle_t  from;
2738     user_handle_t  to;
2739 };
2740 struct get_windows_offset_reply
2741 {
2742     struct reply_header __header;
2743     int            x;
2744     int            y;
2745 };
2746
2747
2748
2749 struct set_window_property_request
2750 {
2751     struct request_header __header;
2752     user_handle_t  window;
2753     atom_t         atom;
2754     int            string;
2755     obj_handle_t   handle;
2756 };
2757 struct set_window_property_reply
2758 {
2759     struct reply_header __header;
2760 };
2761
2762
2763
2764 struct remove_window_property_request
2765 {
2766     struct request_header __header;
2767     user_handle_t  window;
2768     atom_t         atom;
2769 };
2770 struct remove_window_property_reply
2771 {
2772     struct reply_header __header;
2773     obj_handle_t   handle;
2774 };
2775
2776
2777
2778 struct get_window_property_request
2779 {
2780     struct request_header __header;
2781     user_handle_t  window;
2782     atom_t         atom;
2783 };
2784 struct get_window_property_reply
2785 {
2786     struct reply_header __header;
2787     obj_handle_t   handle;
2788 };
2789
2790
2791
2792 struct get_window_properties_request
2793 {
2794     struct request_header __header;
2795     user_handle_t  window;
2796 };
2797 struct get_window_properties_reply
2798 {
2799     struct reply_header __header;
2800     int            total;
2801     /* VARARG(props,properties); */
2802 };
2803
2804
2805
2806 struct attach_thread_input_request
2807 {
2808     struct request_header __header;
2809     thread_id_t    tid_from;
2810     thread_id_t    tid_to;
2811     int            attach;
2812 };
2813 struct attach_thread_input_reply
2814 {
2815     struct reply_header __header;
2816 };
2817
2818
2819
2820 struct get_thread_input_request
2821 {
2822     struct request_header __header;
2823     thread_id_t    tid;
2824 };
2825 struct get_thread_input_reply
2826 {
2827     struct reply_header __header;
2828     user_handle_t  focus;
2829     user_handle_t  capture;
2830     user_handle_t  active;
2831     user_handle_t  foreground;
2832     user_handle_t  menu_owner;
2833     user_handle_t  move_size;
2834     user_handle_t  caret;
2835     rectangle_t    rect;
2836 };
2837
2838
2839 struct get_key_state_request
2840 {
2841     struct request_header __header;
2842     thread_id_t    tid;
2843     int            key;
2844 };
2845 struct get_key_state_reply
2846 {
2847     struct reply_header __header;
2848     unsigned char  state;
2849     /* VARARG(keystate,bytes); */
2850 };
2851
2852
2853 struct set_key_state_request
2854 {
2855     struct request_header __header;
2856     thread_id_t    tid;
2857     /* VARARG(keystate,bytes); */
2858 };
2859 struct set_key_state_reply
2860 {
2861     struct reply_header __header;
2862 };
2863
2864
2865 struct set_foreground_window_request
2866 {
2867     struct request_header __header;
2868     user_handle_t  handle;
2869 };
2870 struct set_foreground_window_reply
2871 {
2872     struct reply_header __header;
2873     user_handle_t  previous;
2874     int            send_msg_old;
2875     int            send_msg_new;
2876 };
2877
2878
2879 struct set_focus_window_request
2880 {
2881     struct request_header __header;
2882     user_handle_t  handle;
2883 };
2884 struct set_focus_window_reply
2885 {
2886     struct reply_header __header;
2887     user_handle_t  previous;
2888 };
2889
2890
2891 struct set_active_window_request
2892 {
2893     struct request_header __header;
2894     user_handle_t  handle;
2895 };
2896 struct set_active_window_reply
2897 {
2898     struct reply_header __header;
2899     user_handle_t  previous;
2900 };
2901
2902
2903 struct set_capture_window_request
2904 {
2905     struct request_header __header;
2906     user_handle_t  handle;
2907     unsigned int   flags;
2908 };
2909 struct set_capture_window_reply
2910 {
2911     struct reply_header __header;
2912     user_handle_t  previous;
2913     user_handle_t  full_handle;
2914 };
2915 #define CAPTURE_MENU     0x01
2916 #define CAPTURE_MOVESIZE 0x02
2917
2918
2919
2920 struct set_caret_window_request
2921 {
2922     struct request_header __header;
2923     user_handle_t  handle;
2924     int            width;
2925     int            height;
2926 };
2927 struct set_caret_window_reply
2928 {
2929     struct reply_header __header;
2930     user_handle_t  previous;
2931     rectangle_t    old_rect;
2932     int            old_hide;
2933     int            old_state;
2934 };
2935
2936
2937
2938 struct set_caret_info_request
2939 {
2940     struct request_header __header;
2941     unsigned int   flags;
2942     user_handle_t  handle;
2943     int            x;
2944     int            y;
2945     int            hide;
2946     int            state;
2947 };
2948 struct set_caret_info_reply
2949 {
2950     struct reply_header __header;
2951     user_handle_t  full_handle;
2952     rectangle_t    old_rect;
2953     int            old_hide;
2954     int            old_state;
2955 };
2956 #define SET_CARET_POS        0x01
2957 #define SET_CARET_HIDE       0x02
2958 #define SET_CARET_STATE      0x04
2959
2960
2961
2962 struct set_hook_request
2963 {
2964     struct request_header __header;
2965     int            id;
2966     thread_id_t    tid;
2967     void*          proc;
2968     int            unicode;
2969     /* VARARG(module,unicode_str); */
2970 };
2971 struct set_hook_reply
2972 {
2973     struct reply_header __header;
2974     user_handle_t  handle;
2975 };
2976
2977
2978
2979 struct remove_hook_request
2980 {
2981     struct request_header __header;
2982     user_handle_t  handle;
2983     int            id;
2984     void*          proc;
2985 };
2986 struct remove_hook_reply
2987 {
2988     struct reply_header __header;
2989 };
2990
2991
2992
2993 struct start_hook_chain_request
2994 {
2995     struct request_header __header;
2996     int            id;
2997 };
2998 struct start_hook_chain_reply
2999 {
3000     struct reply_header __header;
3001     user_handle_t  handle;
3002     process_id_t   pid;
3003     thread_id_t    tid;
3004     void*          proc;
3005     int            unicode;
3006     /* VARARG(module,unicode_str); */
3007 };
3008
3009
3010
3011 struct finish_hook_chain_request
3012 {
3013     struct request_header __header;
3014     int            id;
3015 };
3016 struct finish_hook_chain_reply
3017 {
3018     struct reply_header __header;
3019 };
3020
3021
3022
3023 struct get_next_hook_request
3024 {
3025     struct request_header __header;
3026     user_handle_t  handle;
3027 };
3028 struct get_next_hook_reply
3029 {
3030     struct reply_header __header;
3031     user_handle_t  next;
3032     int            id;
3033     process_id_t   pid;
3034     thread_id_t    tid;
3035     void*          proc;
3036     int            prev_unicode;
3037     int            next_unicode;
3038     /* VARARG(module,unicode_str); */
3039 };
3040
3041
3042
3043 struct create_class_request
3044 {
3045     struct request_header __header;
3046     int            local;
3047     atom_t         atom;
3048     unsigned int   style;
3049     void*          instance;
3050     int            extra;
3051     int            win_extra;
3052     void*          client_ptr;
3053 };
3054 struct create_class_reply
3055 {
3056     struct reply_header __header;
3057 };
3058
3059
3060
3061 struct destroy_class_request
3062 {
3063     struct request_header __header;
3064     atom_t         atom;
3065     void*          instance;
3066 };
3067 struct destroy_class_reply
3068 {
3069     struct reply_header __header;
3070     void*          client_ptr;
3071 };
3072
3073
3074
3075 struct set_class_info_request
3076 {
3077     struct request_header __header;
3078     user_handle_t  window;
3079     unsigned int   flags;
3080     atom_t         atom;
3081     unsigned int   style;
3082     int            win_extra;
3083     void*          instance;
3084     int            extra_offset;
3085     size_t         extra_size;
3086     unsigned int   extra_value;
3087 };
3088 struct set_class_info_reply
3089 {
3090     struct reply_header __header;
3091     atom_t         old_atom;
3092     unsigned int   old_style;
3093     int            old_extra;
3094     int            old_win_extra;
3095     void*          old_instance;
3096     unsigned int   old_extra_value;
3097 };
3098 #define SET_CLASS_ATOM      0x0001
3099 #define SET_CLASS_STYLE     0x0002
3100 #define SET_CLASS_WINEXTRA  0x0004
3101 #define SET_CLASS_INSTANCE  0x0008
3102 #define SET_CLASS_EXTRA     0x0010
3103
3104
3105
3106 struct set_clipboard_info_request
3107 {
3108     struct request_header __header;
3109     unsigned int   flags;
3110     user_handle_t  clipboard;
3111     user_handle_t  owner;
3112     user_handle_t  viewer;
3113     unsigned int   seqno;
3114 };
3115 struct set_clipboard_info_reply
3116 {
3117     struct reply_header __header;
3118     unsigned int   flags;
3119     user_handle_t  old_clipboard;
3120     user_handle_t  old_owner;
3121     user_handle_t  old_viewer;
3122     unsigned int   seqno;
3123 };
3124
3125 #define SET_CB_OPEN      0x001
3126 #define SET_CB_OWNER     0x002
3127 #define SET_CB_VIEWER    0x004
3128 #define SET_CB_SEQNO     0x008
3129 #define SET_CB_RELOWNER  0x010
3130 #define SET_CB_CLOSE     0x020
3131 #define CB_OPEN          0x040
3132 #define CB_OWNER         0x080
3133
3134
3135
3136 struct open_token_request
3137 {
3138     struct request_header __header;
3139     obj_handle_t   handle;
3140     unsigned int   flags;
3141 };
3142 struct open_token_reply
3143 {
3144     struct reply_header __header;
3145     obj_handle_t   token;
3146 };
3147 #define OPEN_TOKEN_THREAD   1
3148 #define OPEN_TOKEN_AS_SELF  2
3149
3150
3151
3152 struct set_global_windows_request
3153 {
3154     struct request_header __header;
3155     unsigned int   flags;
3156     user_handle_t  shell_window;
3157     user_handle_t  shell_listview;
3158     user_handle_t  progman_window;
3159     user_handle_t  taskman_window;
3160 };
3161 struct set_global_windows_reply
3162 {
3163     struct reply_header __header;
3164     user_handle_t  old_shell_window;
3165     user_handle_t  old_shell_listview;
3166     user_handle_t  old_progman_window;
3167     user_handle_t  old_taskman_window;
3168 };
3169 #define SET_GLOBAL_SHELL_WINDOWS   0x01
3170 #define SET_GLOBAL_PROGMAN_WINDOW  0x02
3171 #define SET_GLOBAL_TASKMAN_WINDOW  0x04
3172
3173
3174 enum request
3175 {
3176     REQ_new_process,
3177     REQ_get_new_process_info,
3178     REQ_new_thread,
3179     REQ_boot_done,
3180     REQ_init_process,
3181     REQ_get_startup_info,
3182     REQ_init_process_done,
3183     REQ_init_thread,
3184     REQ_terminate_process,
3185     REQ_terminate_thread,
3186     REQ_get_process_info,
3187     REQ_set_process_info,
3188     REQ_get_thread_info,
3189     REQ_set_thread_info,
3190     REQ_get_dll_info,
3191     REQ_suspend_thread,
3192     REQ_resume_thread,
3193     REQ_load_dll,
3194     REQ_unload_dll,
3195     REQ_queue_apc,
3196     REQ_get_apc,
3197     REQ_close_handle,
3198     REQ_set_handle_info,
3199     REQ_dup_handle,
3200     REQ_open_process,
3201     REQ_open_thread,
3202     REQ_select,
3203     REQ_create_event,
3204     REQ_event_op,
3205     REQ_open_event,
3206     REQ_create_mutex,
3207     REQ_release_mutex,
3208     REQ_open_mutex,
3209     REQ_create_semaphore,
3210     REQ_release_semaphore,
3211     REQ_open_semaphore,
3212     REQ_create_file,
3213     REQ_alloc_file_handle,
3214     REQ_get_handle_fd,
3215     REQ_set_file_pointer,
3216     REQ_truncate_file,
3217     REQ_set_file_time,
3218     REQ_flush_file,
3219     REQ_get_file_info,
3220     REQ_lock_file,
3221     REQ_unlock_file,
3222     REQ_create_socket,
3223     REQ_accept_socket,
3224     REQ_set_socket_event,
3225     REQ_get_socket_event,
3226     REQ_enable_socket_event,
3227     REQ_set_socket_deferred,
3228     REQ_alloc_console,
3229     REQ_free_console,
3230     REQ_get_console_renderer_events,
3231     REQ_open_console,
3232     REQ_get_console_wait_event,
3233     REQ_get_console_mode,
3234     REQ_set_console_mode,
3235     REQ_set_console_input_info,
3236     REQ_get_console_input_info,
3237     REQ_append_console_input_history,
3238     REQ_get_console_input_history,
3239     REQ_create_console_output,
3240     REQ_set_console_output_info,
3241     REQ_get_console_output_info,
3242     REQ_write_console_input,
3243     REQ_read_console_input,
3244     REQ_write_console_output,
3245     REQ_fill_console_output,
3246     REQ_read_console_output,
3247     REQ_move_console_output,
3248     REQ_send_console_signal,
3249     REQ_create_change_notification,
3250     REQ_next_change_notification,
3251     REQ_create_mapping,
3252     REQ_open_mapping,
3253     REQ_get_mapping_info,
3254     REQ_create_snapshot,
3255     REQ_next_process,
3256     REQ_next_thread,
3257     REQ_next_module,
3258     REQ_wait_debug_event,
3259     REQ_queue_exception_event,
3260     REQ_get_exception_status,
3261     REQ_output_debug_string,
3262     REQ_continue_debug_event,
3263     REQ_debug_process,
3264     REQ_debug_break,
3265     REQ_set_debugger_kill_on_exit,
3266     REQ_read_process_memory,
3267     REQ_write_process_memory,
3268     REQ_create_key,
3269     REQ_open_key,
3270     REQ_delete_key,
3271     REQ_flush_key,
3272     REQ_enum_key,
3273     REQ_set_key_value,
3274     REQ_get_key_value,
3275     REQ_enum_key_value,
3276     REQ_delete_key_value,
3277     REQ_load_registry,
3278     REQ_unload_registry,
3279     REQ_save_registry,
3280     REQ_save_registry_atexit,
3281     REQ_set_registry_levels,
3282     REQ_set_registry_notification,
3283     REQ_create_timer,
3284     REQ_open_timer,
3285     REQ_set_timer,
3286     REQ_cancel_timer,
3287     REQ_get_thread_context,
3288     REQ_set_thread_context,
3289     REQ_get_selector_entry,
3290     REQ_add_atom,
3291     REQ_delete_atom,
3292     REQ_find_atom,
3293     REQ_get_atom_name,
3294     REQ_init_atom_table,
3295     REQ_get_msg_queue,
3296     REQ_set_queue_mask,
3297     REQ_get_queue_status,
3298     REQ_wait_input_idle,
3299     REQ_send_message,
3300     REQ_get_message,
3301     REQ_reply_message,
3302     REQ_get_message_reply,
3303     REQ_set_win_timer,
3304     REQ_kill_win_timer,
3305     REQ_create_serial,
3306     REQ_get_serial_info,
3307     REQ_set_serial_info,
3308     REQ_register_async,
3309     REQ_create_named_pipe,
3310     REQ_open_named_pipe,
3311     REQ_connect_named_pipe,
3312     REQ_wait_named_pipe,
3313     REQ_disconnect_named_pipe,
3314     REQ_get_named_pipe_info,
3315     REQ_create_smb,
3316     REQ_get_smb_info,
3317     REQ_create_window,
3318     REQ_link_window,
3319     REQ_destroy_window,
3320     REQ_set_window_owner,
3321     REQ_get_window_info,
3322     REQ_set_window_info,
3323     REQ_get_window_parents,
3324     REQ_get_window_children,
3325     REQ_get_window_tree,
3326     REQ_set_window_rectangles,
3327     REQ_get_window_rectangles,
3328     REQ_get_window_text,
3329     REQ_set_window_text,
3330     REQ_inc_window_paint_count,
3331     REQ_get_windows_offset,
3332     REQ_set_window_property,
3333     REQ_remove_window_property,
3334     REQ_get_window_property,
3335     REQ_get_window_properties,
3336     REQ_attach_thread_input,
3337     REQ_get_thread_input,
3338     REQ_get_key_state,
3339     REQ_set_key_state,
3340     REQ_set_foreground_window,
3341     REQ_set_focus_window,
3342     REQ_set_active_window,
3343     REQ_set_capture_window,
3344     REQ_set_caret_window,
3345     REQ_set_caret_info,
3346     REQ_set_hook,
3347     REQ_remove_hook,
3348     REQ_start_hook_chain,
3349     REQ_finish_hook_chain,
3350     REQ_get_next_hook,
3351     REQ_create_class,
3352     REQ_destroy_class,
3353     REQ_set_class_info,
3354     REQ_set_clipboard_info,
3355     REQ_open_token,
3356     REQ_set_global_windows,
3357     REQ_NB_REQUESTS
3358 };
3359
3360 union generic_request
3361 {
3362     struct request_max_size max_size;
3363     struct request_header request_header;
3364     struct new_process_request new_process_request;
3365     struct get_new_process_info_request get_new_process_info_request;
3366     struct new_thread_request new_thread_request;
3367     struct boot_done_request boot_done_request;
3368     struct init_process_request init_process_request;
3369     struct get_startup_info_request get_startup_info_request;
3370     struct init_process_done_request init_process_done_request;
3371     struct init_thread_request init_thread_request;
3372     struct terminate_process_request terminate_process_request;
3373     struct terminate_thread_request terminate_thread_request;
3374     struct get_process_info_request get_process_info_request;
3375     struct set_process_info_request set_process_info_request;
3376     struct get_thread_info_request get_thread_info_request;
3377     struct set_thread_info_request set_thread_info_request;
3378     struct get_dll_info_request get_dll_info_request;
3379     struct suspend_thread_request suspend_thread_request;
3380     struct resume_thread_request resume_thread_request;
3381     struct load_dll_request load_dll_request;
3382     struct unload_dll_request unload_dll_request;
3383     struct queue_apc_request queue_apc_request;
3384     struct get_apc_request get_apc_request;
3385     struct close_handle_request close_handle_request;
3386     struct set_handle_info_request set_handle_info_request;
3387     struct dup_handle_request dup_handle_request;
3388     struct open_process_request open_process_request;
3389     struct open_thread_request open_thread_request;
3390     struct select_request select_request;
3391     struct create_event_request create_event_request;
3392     struct event_op_request event_op_request;
3393     struct open_event_request open_event_request;
3394     struct create_mutex_request create_mutex_request;
3395     struct release_mutex_request release_mutex_request;
3396     struct open_mutex_request open_mutex_request;
3397     struct create_semaphore_request create_semaphore_request;
3398     struct release_semaphore_request release_semaphore_request;
3399     struct open_semaphore_request open_semaphore_request;
3400     struct create_file_request create_file_request;
3401     struct alloc_file_handle_request alloc_file_handle_request;
3402     struct get_handle_fd_request get_handle_fd_request;
3403     struct set_file_pointer_request set_file_pointer_request;
3404     struct truncate_file_request truncate_file_request;
3405     struct set_file_time_request set_file_time_request;
3406     struct flush_file_request flush_file_request;
3407     struct get_file_info_request get_file_info_request;
3408     struct lock_file_request lock_file_request;
3409     struct unlock_file_request unlock_file_request;
3410     struct create_socket_request create_socket_request;
3411     struct accept_socket_request accept_socket_request;
3412     struct set_socket_event_request set_socket_event_request;
3413     struct get_socket_event_request get_socket_event_request;
3414     struct enable_socket_event_request enable_socket_event_request;
3415     struct set_socket_deferred_request set_socket_deferred_request;
3416     struct alloc_console_request alloc_console_request;
3417     struct free_console_request free_console_request;
3418     struct get_console_renderer_events_request get_console_renderer_events_request;
3419     struct open_console_request open_console_request;
3420     struct get_console_wait_event_request get_console_wait_event_request;
3421     struct get_console_mode_request get_console_mode_request;
3422     struct set_console_mode_request set_console_mode_request;
3423     struct set_console_input_info_request set_console_input_info_request;
3424     struct get_console_input_info_request get_console_input_info_request;
3425     struct append_console_input_history_request append_console_input_history_request;
3426     struct get_console_input_history_request get_console_input_history_request;
3427     struct create_console_output_request create_console_output_request;
3428     struct set_console_output_info_request set_console_output_info_request;
3429     struct get_console_output_info_request get_console_output_info_request;
3430     struct write_console_input_request write_console_input_request;
3431     struct read_console_input_request read_console_input_request;
3432     struct write_console_output_request write_console_output_request;
3433     struct fill_console_output_request fill_console_output_request;
3434     struct read_console_output_request read_console_output_request;
3435     struct move_console_output_request move_console_output_request;
3436     struct send_console_signal_request send_console_signal_request;
3437     struct create_change_notification_request create_change_notification_request;
3438     struct next_change_notification_request next_change_notification_request;
3439     struct create_mapping_request create_mapping_request;
3440     struct open_mapping_request open_mapping_request;
3441     struct get_mapping_info_request get_mapping_info_request;
3442     struct create_snapshot_request create_snapshot_request;
3443     struct next_process_request next_process_request;
3444     struct next_thread_request next_thread_request;
3445     struct next_module_request next_module_request;
3446     struct wait_debug_event_request wait_debug_event_request;
3447     struct queue_exception_event_request queue_exception_event_request;
3448     struct get_exception_status_request get_exception_status_request;
3449     struct output_debug_string_request output_debug_string_request;
3450     struct continue_debug_event_request continue_debug_event_request;
3451     struct debug_process_request debug_process_request;
3452     struct debug_break_request debug_break_request;
3453     struct set_debugger_kill_on_exit_request set_debugger_kill_on_exit_request;
3454     struct read_process_memory_request read_process_memory_request;
3455     struct write_process_memory_request write_process_memory_request;
3456     struct create_key_request create_key_request;
3457     struct open_key_request open_key_request;
3458     struct delete_key_request delete_key_request;
3459     struct flush_key_request flush_key_request;
3460     struct enum_key_request enum_key_request;
3461     struct set_key_value_request set_key_value_request;
3462     struct get_key_value_request get_key_value_request;
3463     struct enum_key_value_request enum_key_value_request;
3464     struct delete_key_value_request delete_key_value_request;
3465     struct load_registry_request load_registry_request;
3466     struct unload_registry_request unload_registry_request;
3467     struct save_registry_request save_registry_request;
3468     struct save_registry_atexit_request save_registry_atexit_request;
3469     struct set_registry_levels_request set_registry_levels_request;
3470     struct set_registry_notification_request set_registry_notification_request;
3471     struct create_timer_request create_timer_request;
3472     struct open_timer_request open_timer_request;
3473     struct set_timer_request set_timer_request;
3474     struct cancel_timer_request cancel_timer_request;
3475     struct get_thread_context_request get_thread_context_request;
3476     struct set_thread_context_request set_thread_context_request;
3477     struct get_selector_entry_request get_selector_entry_request;
3478     struct add_atom_request add_atom_request;
3479     struct delete_atom_request delete_atom_request;
3480     struct find_atom_request find_atom_request;
3481     struct get_atom_name_request get_atom_name_request;
3482     struct init_atom_table_request init_atom_table_request;
3483     struct get_msg_queue_request get_msg_queue_request;
3484     struct set_queue_mask_request set_queue_mask_request;
3485     struct get_queue_status_request get_queue_status_request;
3486     struct wait_input_idle_request wait_input_idle_request;
3487     struct send_message_request send_message_request;
3488     struct get_message_request get_message_request;
3489     struct reply_message_request reply_message_request;
3490     struct get_message_reply_request get_message_reply_request;
3491     struct set_win_timer_request set_win_timer_request;
3492     struct kill_win_timer_request kill_win_timer_request;
3493     struct create_serial_request create_serial_request;
3494     struct get_serial_info_request get_serial_info_request;
3495     struct set_serial_info_request set_serial_info_request;
3496     struct register_async_request register_async_request;
3497     struct create_named_pipe_request create_named_pipe_request;
3498     struct open_named_pipe_request open_named_pipe_request;
3499     struct connect_named_pipe_request connect_named_pipe_request;
3500     struct wait_named_pipe_request wait_named_pipe_request;
3501     struct disconnect_named_pipe_request disconnect_named_pipe_request;
3502     struct get_named_pipe_info_request get_named_pipe_info_request;
3503     struct create_smb_request create_smb_request;
3504     struct get_smb_info_request get_smb_info_request;
3505     struct create_window_request create_window_request;
3506     struct link_window_request link_window_request;
3507     struct destroy_window_request destroy_window_request;
3508     struct set_window_owner_request set_window_owner_request;
3509     struct get_window_info_request get_window_info_request;
3510     struct set_window_info_request set_window_info_request;
3511     struct get_window_parents_request get_window_parents_request;
3512     struct get_window_children_request get_window_children_request;
3513     struct get_window_tree_request get_window_tree_request;
3514     struct set_window_rectangles_request set_window_rectangles_request;
3515     struct get_window_rectangles_request get_window_rectangles_request;
3516     struct get_window_text_request get_window_text_request;
3517     struct set_window_text_request set_window_text_request;
3518     struct inc_window_paint_count_request inc_window_paint_count_request;
3519     struct get_windows_offset_request get_windows_offset_request;
3520     struct set_window_property_request set_window_property_request;
3521     struct remove_window_property_request remove_window_property_request;
3522     struct get_window_property_request get_window_property_request;
3523     struct get_window_properties_request get_window_properties_request;
3524     struct attach_thread_input_request attach_thread_input_request;
3525     struct get_thread_input_request get_thread_input_request;
3526     struct get_key_state_request get_key_state_request;
3527     struct set_key_state_request set_key_state_request;
3528     struct set_foreground_window_request set_foreground_window_request;
3529     struct set_focus_window_request set_focus_window_request;
3530     struct set_active_window_request set_active_window_request;
3531     struct set_capture_window_request set_capture_window_request;
3532     struct set_caret_window_request set_caret_window_request;
3533     struct set_caret_info_request set_caret_info_request;
3534     struct set_hook_request set_hook_request;
3535     struct remove_hook_request remove_hook_request;
3536     struct start_hook_chain_request start_hook_chain_request;
3537     struct finish_hook_chain_request finish_hook_chain_request;
3538     struct get_next_hook_request get_next_hook_request;
3539     struct create_class_request create_class_request;
3540     struct destroy_class_request destroy_class_request;
3541     struct set_class_info_request set_class_info_request;
3542     struct set_clipboard_info_request set_clipboard_info_request;
3543     struct open_token_request open_token_request;
3544     struct set_global_windows_request set_global_windows_request;
3545 };
3546 union generic_reply
3547 {
3548     struct request_max_size max_size;
3549     struct reply_header reply_header;
3550     struct new_process_reply new_process_reply;
3551     struct get_new_process_info_reply get_new_process_info_reply;
3552     struct new_thread_reply new_thread_reply;
3553     struct boot_done_reply boot_done_reply;
3554     struct init_process_reply init_process_reply;
3555     struct get_startup_info_reply get_startup_info_reply;
3556     struct init_process_done_reply init_process_done_reply;
3557     struct init_thread_reply init_thread_reply;
3558     struct terminate_process_reply terminate_process_reply;
3559     struct terminate_thread_reply terminate_thread_reply;
3560     struct get_process_info_reply get_process_info_reply;
3561     struct set_process_info_reply set_process_info_reply;
3562     struct get_thread_info_reply get_thread_info_reply;
3563     struct set_thread_info_reply set_thread_info_reply;
3564     struct get_dll_info_reply get_dll_info_reply;
3565     struct suspend_thread_reply suspend_thread_reply;
3566     struct resume_thread_reply resume_thread_reply;
3567     struct load_dll_reply load_dll_reply;
3568     struct unload_dll_reply unload_dll_reply;
3569     struct queue_apc_reply queue_apc_reply;
3570     struct get_apc_reply get_apc_reply;
3571     struct close_handle_reply close_handle_reply;
3572     struct set_handle_info_reply set_handle_info_reply;
3573     struct dup_handle_reply dup_handle_reply;
3574     struct open_process_reply open_process_reply;
3575     struct open_thread_reply open_thread_reply;
3576     struct select_reply select_reply;
3577     struct create_event_reply create_event_reply;
3578     struct event_op_reply event_op_reply;
3579     struct open_event_reply open_event_reply;
3580     struct create_mutex_reply create_mutex_reply;
3581     struct release_mutex_reply release_mutex_reply;
3582     struct open_mutex_reply open_mutex_reply;
3583     struct create_semaphore_reply create_semaphore_reply;
3584     struct release_semaphore_reply release_semaphore_reply;
3585     struct open_semaphore_reply open_semaphore_reply;
3586     struct create_file_reply create_file_reply;
3587     struct alloc_file_handle_reply alloc_file_handle_reply;
3588     struct get_handle_fd_reply get_handle_fd_reply;
3589     struct set_file_pointer_reply set_file_pointer_reply;
3590     struct truncate_file_reply truncate_file_reply;
3591     struct set_file_time_reply set_file_time_reply;
3592     struct flush_file_reply flush_file_reply;
3593     struct get_file_info_reply get_file_info_reply;
3594     struct lock_file_reply lock_file_reply;
3595     struct unlock_file_reply unlock_file_reply;
3596     struct create_socket_reply create_socket_reply;
3597     struct accept_socket_reply accept_socket_reply;
3598     struct set_socket_event_reply set_socket_event_reply;
3599     struct get_socket_event_reply get_socket_event_reply;
3600     struct enable_socket_event_reply enable_socket_event_reply;
3601     struct set_socket_deferred_reply set_socket_deferred_reply;
3602     struct alloc_console_reply alloc_console_reply;
3603     struct free_console_reply free_console_reply;
3604     struct get_console_renderer_events_reply get_console_renderer_events_reply;
3605     struct open_console_reply open_console_reply;
3606     struct get_console_wait_event_reply get_console_wait_event_reply;
3607     struct get_console_mode_reply get_console_mode_reply;
3608     struct set_console_mode_reply set_console_mode_reply;
3609     struct set_console_input_info_reply set_console_input_info_reply;
3610     struct get_console_input_info_reply get_console_input_info_reply;
3611     struct append_console_input_history_reply append_console_input_history_reply;
3612     struct get_console_input_history_reply get_console_input_history_reply;
3613     struct create_console_output_reply create_console_output_reply;
3614     struct set_console_output_info_reply set_console_output_info_reply;
3615     struct get_console_output_info_reply get_console_output_info_reply;
3616     struct write_console_input_reply write_console_input_reply;
3617     struct read_console_input_reply read_console_input_reply;
3618     struct write_console_output_reply write_console_output_reply;
3619     struct fill_console_output_reply fill_console_output_reply;
3620     struct read_console_output_reply read_console_output_reply;
3621     struct move_console_output_reply move_console_output_reply;
3622     struct send_console_signal_reply send_console_signal_reply;
3623     struct create_change_notification_reply create_change_notification_reply;
3624     struct next_change_notification_reply next_change_notification_reply;
3625     struct create_mapping_reply create_mapping_reply;
3626     struct open_mapping_reply open_mapping_reply;
3627     struct get_mapping_info_reply get_mapping_info_reply;
3628     struct create_snapshot_reply create_snapshot_reply;
3629     struct next_process_reply next_process_reply;
3630     struct next_thread_reply next_thread_reply;
3631     struct next_module_reply next_module_reply;
3632     struct wait_debug_event_reply wait_debug_event_reply;
3633     struct queue_exception_event_reply queue_exception_event_reply;
3634     struct get_exception_status_reply get_exception_status_reply;
3635     struct output_debug_string_reply output_debug_string_reply;
3636     struct continue_debug_event_reply continue_debug_event_reply;
3637     struct debug_process_reply debug_process_reply;
3638     struct debug_break_reply debug_break_reply;
3639     struct set_debugger_kill_on_exit_reply set_debugger_kill_on_exit_reply;
3640     struct read_process_memory_reply read_process_memory_reply;
3641     struct write_process_memory_reply write_process_memory_reply;
3642     struct create_key_reply create_key_reply;
3643     struct open_key_reply open_key_reply;
3644     struct delete_key_reply delete_key_reply;
3645     struct flush_key_reply flush_key_reply;
3646     struct enum_key_reply enum_key_reply;
3647     struct set_key_value_reply set_key_value_reply;
3648     struct get_key_value_reply get_key_value_reply;
3649     struct enum_key_value_reply enum_key_value_reply;
3650     struct delete_key_value_reply delete_key_value_reply;
3651     struct load_registry_reply load_registry_reply;
3652     struct unload_registry_reply unload_registry_reply;
3653     struct save_registry_reply save_registry_reply;
3654     struct save_registry_atexit_reply save_registry_atexit_reply;
3655     struct set_registry_levels_reply set_registry_levels_reply;
3656     struct set_registry_notification_reply set_registry_notification_reply;
3657     struct create_timer_reply create_timer_reply;
3658     struct open_timer_reply open_timer_reply;
3659     struct set_timer_reply set_timer_reply;
3660     struct cancel_timer_reply cancel_timer_reply;
3661     struct get_thread_context_reply get_thread_context_reply;
3662     struct set_thread_context_reply set_thread_context_reply;
3663     struct get_selector_entry_reply get_selector_entry_reply;
3664     struct add_atom_reply add_atom_reply;
3665     struct delete_atom_reply delete_atom_reply;
3666     struct find_atom_reply find_atom_reply;
3667     struct get_atom_name_reply get_atom_name_reply;
3668     struct init_atom_table_reply init_atom_table_reply;
3669     struct get_msg_queue_reply get_msg_queue_reply;
3670     struct set_queue_mask_reply set_queue_mask_reply;
3671     struct get_queue_status_reply get_queue_status_reply;
3672     struct wait_input_idle_reply wait_input_idle_reply;
3673     struct send_message_reply send_message_reply;
3674     struct get_message_reply get_message_reply;
3675     struct reply_message_reply reply_message_reply;
3676     struct get_message_reply_reply get_message_reply_reply;
3677     struct set_win_timer_reply set_win_timer_reply;
3678     struct kill_win_timer_reply kill_win_timer_reply;
3679     struct create_serial_reply create_serial_reply;
3680     struct get_serial_info_reply get_serial_info_reply;
3681     struct set_serial_info_reply set_serial_info_reply;
3682     struct register_async_reply register_async_reply;
3683     struct create_named_pipe_reply create_named_pipe_reply;
3684     struct open_named_pipe_reply open_named_pipe_reply;
3685     struct connect_named_pipe_reply connect_named_pipe_reply;
3686     struct wait_named_pipe_reply wait_named_pipe_reply;
3687     struct disconnect_named_pipe_reply disconnect_named_pipe_reply;
3688     struct get_named_pipe_info_reply get_named_pipe_info_reply;
3689     struct create_smb_reply create_smb_reply;
3690     struct get_smb_info_reply get_smb_info_reply;
3691     struct create_window_reply create_window_reply;
3692     struct link_window_reply link_window_reply;
3693     struct destroy_window_reply destroy_window_reply;
3694     struct set_window_owner_reply set_window_owner_reply;
3695     struct get_window_info_reply get_window_info_reply;
3696     struct set_window_info_reply set_window_info_reply;
3697     struct get_window_parents_reply get_window_parents_reply;
3698     struct get_window_children_reply get_window_children_reply;
3699     struct get_window_tree_reply get_window_tree_reply;
3700     struct set_window_rectangles_reply set_window_rectangles_reply;
3701     struct get_window_rectangles_reply get_window_rectangles_reply;
3702     struct get_window_text_reply get_window_text_reply;
3703     struct set_window_text_reply set_window_text_reply;
3704     struct inc_window_paint_count_reply inc_window_paint_count_reply;
3705     struct get_windows_offset_reply get_windows_offset_reply;
3706     struct set_window_property_reply set_window_property_reply;
3707     struct remove_window_property_reply remove_window_property_reply;
3708     struct get_window_property_reply get_window_property_reply;
3709     struct get_window_properties_reply get_window_properties_reply;
3710     struct attach_thread_input_reply attach_thread_input_reply;
3711     struct get_thread_input_reply get_thread_input_reply;
3712     struct get_key_state_reply get_key_state_reply;
3713     struct set_key_state_reply set_key_state_reply;
3714     struct set_foreground_window_reply set_foreground_window_reply;
3715     struct set_focus_window_reply set_focus_window_reply;
3716     struct set_active_window_reply set_active_window_reply;
3717     struct set_capture_window_reply set_capture_window_reply;
3718     struct set_caret_window_reply set_caret_window_reply;
3719     struct set_caret_info_reply set_caret_info_reply;
3720     struct set_hook_reply set_hook_reply;
3721     struct remove_hook_reply remove_hook_reply;
3722     struct start_hook_chain_reply start_hook_chain_reply;
3723     struct finish_hook_chain_reply finish_hook_chain_reply;
3724     struct get_next_hook_reply get_next_hook_reply;
3725     struct create_class_reply create_class_reply;
3726     struct destroy_class_reply destroy_class_reply;
3727     struct set_class_info_reply set_class_info_reply;
3728     struct set_clipboard_info_reply set_clipboard_info_reply;
3729     struct open_token_reply open_token_reply;
3730     struct set_global_windows_reply set_global_windows_reply;
3731 };
3732
3733 #define SERVER_PROTOCOL_VERSION 134
3734
3735 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */