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