user32: Update DrawText tests to cover behavior differences on win98.
[wine] / include / wine / server_protocol.h
1 /*
2  * Wine server protocol definitions
3  *
4  * This file is automatically generated; DO NO EDIT!
5  * Edit server/protocol.def instead and re-run tools/make_requests
6  */
7
8 #ifndef __WINE_WINE_SERVER_PROTOCOL_H
9 #define __WINE_WINE_SERVER_PROTOCOL_H
10
11 #include <stdarg.h>
12 #include <stdlib.h>
13 #include <time.h>
14
15 #include <windef.h>
16 #include <winbase.h>
17
18 typedef void *obj_handle_t;
19 typedef void *user_handle_t;
20 typedef unsigned short atom_t;
21 typedef unsigned int process_id_t;
22 typedef unsigned int thread_id_t;
23 typedef unsigned int data_size_t;
24 typedef unsigned int ioctl_code_t;
25 typedef unsigned __int64 file_pos_t;
26
27 struct request_header
28 {
29     int          req;
30     data_size_t  request_size;
31     data_size_t  reply_size;
32 };
33
34 struct reply_header
35 {
36     unsigned int error;
37     data_size_t  reply_size;
38 };
39
40
41
42 struct request_max_size
43 {
44     int pad[16];
45 };
46
47 #define FIRST_USER_HANDLE 0x0020
48 #define LAST_USER_HANDLE  0xffef
49
50
51
52 struct debug_event_exception
53 {
54     EXCEPTION_RECORD record;
55     int              first;
56 };
57 struct debug_event_create_thread
58 {
59     obj_handle_t handle;
60     void        *teb;
61     void        *start;
62 };
63 struct debug_event_create_process
64 {
65     obj_handle_t file;
66     obj_handle_t process;
67     obj_handle_t thread;
68     void        *base;
69     int          dbg_offset;
70     int          dbg_size;
71     void        *teb;
72     void        *start;
73     void        *name;
74     int          unicode;
75 };
76 struct debug_event_exit
77 {
78     int          exit_code;
79 };
80 struct debug_event_load_dll
81 {
82     obj_handle_t handle;
83     void        *base;
84     int          dbg_offset;
85     int          dbg_size;
86     void        *name;
87     int          unicode;
88 };
89 struct debug_event_unload_dll
90 {
91     void       *base;
92 };
93 struct debug_event_output_string
94 {
95     void       *string;
96     int         unicode;
97     int         length;
98 };
99 struct debug_event_rip_info
100 {
101     int         error;
102     int         type;
103 };
104 union debug_event_data
105 {
106     struct debug_event_exception      exception;
107     struct debug_event_create_thread  create_thread;
108     struct debug_event_create_process create_process;
109     struct debug_event_exit           exit;
110     struct debug_event_load_dll       load_dll;
111     struct debug_event_unload_dll     unload_dll;
112     struct debug_event_output_string  output_string;
113     struct debug_event_rip_info       rip_info;
114 };
115
116
117 typedef struct
118 {
119     int                      code;
120     union debug_event_data   info;
121 } debug_event_t;
122
123
124 struct send_fd
125 {
126     thread_id_t tid;
127     int         fd;
128 };
129
130
131 struct wake_up_reply
132 {
133     void *cookie;
134     int   signaled;
135 };
136
137
138 typedef __int64 timeout_t;
139 #define TIMEOUT_INFINITE (((timeout_t)0x7fffffff) << 32 | 0xffffffff)
140
141
142 typedef struct
143 {
144     atom_t         atom;
145     short          string;
146     obj_handle_t   handle;
147 } property_data_t;
148
149
150 typedef struct
151 {
152     int  left;
153     int  top;
154     int  right;
155     int  bottom;
156 } rectangle_t;
157
158
159 typedef struct
160 {
161     void           *callback;
162     void           *iosb;
163     void           *arg;
164     void           *apc;
165     obj_handle_t    event;
166     unsigned long   cvalue;
167 } async_data_t;
168
169
170
171 struct callback_msg_data
172 {
173     void           *callback;
174     unsigned long   data;
175     unsigned long   result;
176 };
177
178 struct winevent_msg_data
179 {
180     user_handle_t   hook;
181     thread_id_t     tid;
182     void           *hook_proc;
183
184 };
185
186 typedef union
187 {
188     unsigned char            bytes[1];
189     struct callback_msg_data callback;
190     struct winevent_msg_data winevent;
191 } message_data_t;
192
193
194 typedef struct
195 {
196     WCHAR          ch;
197     unsigned short attr;
198 } char_info_t;
199
200 typedef struct
201 {
202     unsigned int low_part;
203     int          high_part;
204 } luid_t;
205
206 #define MAX_ACL_LEN 65535
207
208 struct security_descriptor
209 {
210     unsigned int control;
211     data_size_t  owner_len;
212     data_size_t  group_len;
213     data_size_t  sacl_len;
214     data_size_t  dacl_len;
215
216
217
218
219 };
220
221 struct object_attributes
222 {
223     obj_handle_t rootdir;
224     data_size_t sd_len;
225     data_size_t name_len;
226
227
228 };
229
230 struct token_groups
231 {
232     unsigned int count;
233
234
235 };
236
237 enum apc_type
238 {
239     APC_NONE,
240     APC_USER,
241     APC_TIMER,
242     APC_ASYNC_IO,
243     APC_VIRTUAL_ALLOC,
244     APC_VIRTUAL_FREE,
245     APC_VIRTUAL_QUERY,
246     APC_VIRTUAL_PROTECT,
247     APC_VIRTUAL_FLUSH,
248     APC_VIRTUAL_LOCK,
249     APC_VIRTUAL_UNLOCK,
250     APC_MAP_VIEW,
251     APC_UNMAP_VIEW,
252     APC_CREATE_THREAD
253 };
254
255 typedef union
256 {
257     enum apc_type type;
258     struct
259     {
260         enum apc_type    type;
261         void (__stdcall *func)(unsigned long,unsigned long,unsigned long);
262         unsigned long    args[3];
263     } user;
264     struct
265     {
266         enum apc_type   type;
267         void (__stdcall *func)(void*, unsigned int, unsigned int);
268         timeout_t        time;
269         void            *arg;
270     } timer;
271     struct
272     {
273         enum apc_type    type;
274         unsigned int   (*func)(void*, void*, unsigned int, unsigned long *);
275         void            *user;
276         void            *sb;
277         unsigned int     status;
278     } async_io;
279     struct
280     {
281         enum apc_type    type;
282         void            *addr;
283         unsigned long    size;
284         unsigned int     zero_bits;
285         unsigned int     op_type;
286         unsigned int     prot;
287     } virtual_alloc;
288     struct
289     {
290         enum apc_type    type;
291         void            *addr;
292         unsigned long    size;
293         unsigned int     op_type;
294     } virtual_free;
295     struct
296     {
297         enum apc_type    type;
298         const void      *addr;
299     } virtual_query;
300     struct
301     {
302         enum apc_type    type;
303         void            *addr;
304         unsigned long    size;
305         unsigned int     prot;
306     } virtual_protect;
307     struct
308     {
309         enum apc_type    type;
310         const void      *addr;
311         unsigned long    size;
312     } virtual_flush;
313     struct
314     {
315         enum apc_type    type;
316         void            *addr;
317         unsigned long    size;
318     } virtual_lock;
319     struct
320     {
321         enum apc_type    type;
322         void            *addr;
323         unsigned long    size;
324     } virtual_unlock;
325     struct
326     {
327         enum apc_type    type;
328         obj_handle_t     handle;
329         void            *addr;
330         unsigned long    size;
331         file_pos_t       offset;
332         unsigned int     zero_bits;
333         unsigned int     alloc_type;
334         unsigned int     prot;
335     } map_view;
336     struct
337     {
338         enum apc_type    type;
339         void            *addr;
340     } unmap_view;
341     struct
342     {
343         enum apc_type    type;
344         void (__stdcall *func)(void*);
345         void            *arg;
346         unsigned long    reserve;
347         unsigned long    commit;
348         int              suspend;
349     } create_thread;
350 } apc_call_t;
351
352 typedef union
353 {
354     enum apc_type type;
355     struct
356     {
357         enum apc_type    type;
358         unsigned int     status;
359         unsigned long    total;
360     } async_io;
361     struct
362     {
363         enum apc_type    type;
364         unsigned int     status;
365         void            *addr;
366         unsigned long    size;
367     } virtual_alloc;
368     struct
369     {
370         enum apc_type    type;
371         unsigned int     status;
372         void            *addr;
373         unsigned long    size;
374     } virtual_free;
375     struct
376     {
377         enum apc_type    type;
378         unsigned int     status;
379         void            *base;
380         void            *alloc_base;
381         unsigned long    size;
382         unsigned int     state;
383         unsigned int     prot;
384         unsigned int     alloc_prot;
385         unsigned int     alloc_type;
386     } virtual_query;
387     struct
388     {
389         enum apc_type    type;
390         unsigned int     status;
391         void            *addr;
392         unsigned long    size;
393         unsigned int     prot;
394     } virtual_protect;
395     struct
396     {
397         enum apc_type    type;
398         unsigned int     status;
399         const void      *addr;
400         unsigned long    size;
401     } virtual_flush;
402     struct
403     {
404         enum apc_type    type;
405         unsigned int     status;
406         void            *addr;
407         unsigned long    size;
408     } virtual_lock;
409     struct
410     {
411         enum apc_type    type;
412         unsigned int     status;
413         void            *addr;
414         unsigned long    size;
415     } virtual_unlock;
416     struct
417     {
418         enum apc_type    type;
419         unsigned int     status;
420         void            *addr;
421         unsigned long    size;
422     } map_view;
423     struct
424     {
425         enum apc_type    type;
426         unsigned int     status;
427     } unmap_view;
428     struct
429     {
430         enum apc_type    type;
431         unsigned int     status;
432         thread_id_t      tid;
433         obj_handle_t     handle;
434     } create_thread;
435 } apc_result_t;
436
437
438
439
440
441 struct new_process_request
442 {
443     struct request_header __header;
444     int          inherit_all;
445     unsigned int create_flags;
446     int          socket_fd;
447     obj_handle_t exe_file;
448     obj_handle_t hstdin;
449     obj_handle_t hstdout;
450     obj_handle_t hstderr;
451     unsigned int process_access;
452     unsigned int process_attr;
453     unsigned int thread_access;
454     unsigned int thread_attr;
455     /* VARARG(info,startup_info); */
456     /* VARARG(env,unicode_str); */
457 };
458 struct new_process_reply
459 {
460     struct reply_header __header;
461     obj_handle_t info;
462     process_id_t pid;
463     obj_handle_t phandle;
464     thread_id_t  tid;
465     obj_handle_t thandle;
466 };
467
468
469
470 struct get_new_process_info_request
471 {
472     struct request_header __header;
473     obj_handle_t info;
474 };
475 struct get_new_process_info_reply
476 {
477     struct reply_header __header;
478     int          success;
479     int          exit_code;
480 };
481
482
483
484 struct new_thread_request
485 {
486     struct request_header __header;
487     unsigned int access;
488     unsigned int attributes;
489     int          suspend;
490     int          request_fd;
491 };
492 struct new_thread_reply
493 {
494     struct reply_header __header;
495     thread_id_t  tid;
496     obj_handle_t handle;
497 };
498
499
500
501 struct get_startup_info_request
502 {
503     struct request_header __header;
504 };
505 struct get_startup_info_reply
506 {
507     struct reply_header __header;
508     obj_handle_t exe_file;
509     obj_handle_t hstdin;
510     obj_handle_t hstdout;
511     obj_handle_t hstderr;
512     /* VARARG(info,startup_info); */
513     /* VARARG(env,unicode_str); */
514 };
515
516
517
518 struct init_process_done_request
519 {
520     struct request_header __header;
521     void*        module;
522     void*        entry;
523     int          gui;
524 };
525 struct init_process_done_reply
526 {
527     struct reply_header __header;
528 };
529
530
531
532 struct init_thread_request
533 {
534     struct request_header __header;
535     int          unix_pid;
536     int          unix_tid;
537     int          debug_level;
538     void*        teb;
539     void*        peb;
540     void*        entry;
541     void*        ldt_copy;
542     int          reply_fd;
543     int          wait_fd;
544 };
545 struct init_thread_reply
546 {
547     struct reply_header __header;
548     process_id_t pid;
549     thread_id_t  tid;
550     data_size_t  info_size;
551     timeout_t    server_start;
552     int          version;
553 };
554
555
556
557 struct terminate_process_request
558 {
559     struct request_header __header;
560     obj_handle_t handle;
561     int          exit_code;
562 };
563 struct terminate_process_reply
564 {
565     struct reply_header __header;
566     int          self;
567 };
568
569
570
571 struct terminate_thread_request
572 {
573     struct request_header __header;
574     obj_handle_t handle;
575     int          exit_code;
576 };
577 struct terminate_thread_reply
578 {
579     struct reply_header __header;
580     int          self;
581     int          last;
582 };
583
584
585
586 struct get_process_info_request
587 {
588     struct request_header __header;
589     obj_handle_t handle;
590 };
591 struct get_process_info_reply
592 {
593     struct reply_header __header;
594     process_id_t pid;
595     process_id_t ppid;
596     int          exit_code;
597     int          priority;
598     unsigned int affinity;
599     void*        peb;
600     timeout_t    start_time;
601     timeout_t    end_time;
602 };
603
604
605
606 struct set_process_info_request
607 {
608     struct request_header __header;
609     obj_handle_t handle;
610     int          mask;
611     int          priority;
612     unsigned int affinity;
613 };
614 struct set_process_info_reply
615 {
616     struct reply_header __header;
617 };
618 #define SET_PROCESS_INFO_PRIORITY 0x01
619 #define SET_PROCESS_INFO_AFFINITY 0x02
620
621
622
623 struct get_thread_info_request
624 {
625     struct request_header __header;
626     obj_handle_t handle;
627     thread_id_t  tid_in;
628 };
629 struct get_thread_info_reply
630 {
631     struct reply_header __header;
632     process_id_t pid;
633     thread_id_t  tid;
634     void*        teb;
635     int          exit_code;
636     int          priority;
637     unsigned int affinity;
638     timeout_t    creation_time;
639     timeout_t    exit_time;
640     int          last;
641 };
642
643
644
645 struct set_thread_info_request
646 {
647     struct request_header __header;
648     obj_handle_t handle;
649     int          mask;
650     int          priority;
651     unsigned int affinity;
652     obj_handle_t token;
653 };
654 struct set_thread_info_reply
655 {
656     struct reply_header __header;
657 };
658 #define SET_THREAD_INFO_PRIORITY 0x01
659 #define SET_THREAD_INFO_AFFINITY 0x02
660 #define SET_THREAD_INFO_TOKEN    0x04
661
662
663
664 struct get_dll_info_request
665 {
666     struct request_header __header;
667     obj_handle_t handle;
668     void*        base_address;
669 };
670 struct get_dll_info_reply
671 {
672     struct reply_header __header;
673     size_t       size;
674     void*        entry_point;
675     data_size_t  filename_len;
676     /* VARARG(filename,unicode_str); */
677 };
678
679
680
681 struct suspend_thread_request
682 {
683     struct request_header __header;
684     obj_handle_t handle;
685 };
686 struct suspend_thread_reply
687 {
688     struct reply_header __header;
689     int          count;
690 };
691
692
693
694 struct resume_thread_request
695 {
696     struct request_header __header;
697     obj_handle_t handle;
698 };
699 struct resume_thread_reply
700 {
701     struct reply_header __header;
702     int          count;
703 };
704
705
706
707 struct load_dll_request
708 {
709     struct request_header __header;
710     obj_handle_t handle;
711     void*        base;
712     size_t       size;
713     int          dbg_offset;
714     int          dbg_size;
715     void*        name;
716     /* VARARG(filename,unicode_str); */
717 };
718 struct load_dll_reply
719 {
720     struct reply_header __header;
721 };
722
723
724
725 struct unload_dll_request
726 {
727     struct request_header __header;
728     void*        base;
729 };
730 struct unload_dll_reply
731 {
732     struct reply_header __header;
733 };
734
735
736
737 struct queue_apc_request
738 {
739     struct request_header __header;
740     obj_handle_t thread;
741     obj_handle_t process;
742     apc_call_t   call;
743 };
744 struct queue_apc_reply
745 {
746     struct reply_header __header;
747     obj_handle_t handle;
748     int          self;
749 };
750
751
752
753 struct get_apc_result_request
754 {
755     struct request_header __header;
756     obj_handle_t handle;
757 };
758 struct get_apc_result_reply
759 {
760     struct reply_header __header;
761     apc_result_t result;
762 };
763
764
765
766 struct close_handle_request
767 {
768     struct request_header __header;
769     obj_handle_t handle;
770 };
771 struct close_handle_reply
772 {
773     struct reply_header __header;
774 };
775
776
777
778 struct set_handle_info_request
779 {
780     struct request_header __header;
781     obj_handle_t handle;
782     int          flags;
783     int          mask;
784 };
785 struct set_handle_info_reply
786 {
787     struct reply_header __header;
788     int          old_flags;
789 };
790
791
792
793 struct dup_handle_request
794 {
795     struct request_header __header;
796     obj_handle_t src_process;
797     obj_handle_t src_handle;
798     obj_handle_t dst_process;
799     unsigned int access;
800     unsigned int attributes;
801     unsigned int options;
802 };
803 struct dup_handle_reply
804 {
805     struct reply_header __header;
806     obj_handle_t handle;
807     int          self;
808     int          closed;
809 };
810 #define DUP_HANDLE_CLOSE_SOURCE  DUPLICATE_CLOSE_SOURCE
811 #define DUP_HANDLE_SAME_ACCESS   DUPLICATE_SAME_ACCESS
812 #define DUP_HANDLE_MAKE_GLOBAL   0x80000000
813
814
815
816 struct open_process_request
817 {
818     struct request_header __header;
819     process_id_t pid;
820     unsigned int access;
821     unsigned int attributes;
822 };
823 struct open_process_reply
824 {
825     struct reply_header __header;
826     obj_handle_t handle;
827 };
828
829
830
831 struct open_thread_request
832 {
833     struct request_header __header;
834     thread_id_t  tid;
835     unsigned int access;
836     unsigned int attributes;
837 };
838 struct open_thread_reply
839 {
840     struct reply_header __header;
841     obj_handle_t handle;
842 };
843
844
845
846 struct select_request
847 {
848     struct request_header __header;
849     int          flags;
850     void*        cookie;
851     obj_handle_t signal;
852     obj_handle_t prev_apc;
853     timeout_t    timeout;
854     /* VARARG(result,apc_result); */
855     /* VARARG(handles,handles); */
856 };
857 struct select_reply
858 {
859     struct reply_header __header;
860     obj_handle_t apc_handle;
861     timeout_t    timeout;
862     apc_call_t   call;
863 };
864 #define SELECT_ALL           1
865 #define SELECT_ALERTABLE     2
866 #define SELECT_INTERRUPTIBLE 4
867
868
869
870 struct create_event_request
871 {
872     struct request_header __header;
873     unsigned int access;
874     unsigned int attributes;
875     int          manual_reset;
876     int          initial_state;
877     /* VARARG(objattr,object_attributes); */
878 };
879 struct create_event_reply
880 {
881     struct reply_header __header;
882     obj_handle_t handle;
883 };
884
885
886 struct event_op_request
887 {
888     struct request_header __header;
889     obj_handle_t  handle;
890     int           op;
891 };
892 struct event_op_reply
893 {
894     struct reply_header __header;
895 };
896 enum event_op { PULSE_EVENT, SET_EVENT, RESET_EVENT };
897
898
899
900 struct open_event_request
901 {
902     struct request_header __header;
903     unsigned int access;
904     unsigned int attributes;
905     obj_handle_t rootdir;
906     /* VARARG(name,unicode_str); */
907 };
908 struct open_event_reply
909 {
910     struct reply_header __header;
911     obj_handle_t handle;
912 };
913
914
915
916 struct create_mutex_request
917 {
918     struct request_header __header;
919     unsigned int access;
920     unsigned int attributes;
921     int          owned;
922     /* VARARG(objattr,object_attributes); */
923 };
924 struct create_mutex_reply
925 {
926     struct reply_header __header;
927     obj_handle_t handle;
928 };
929
930
931
932 struct release_mutex_request
933 {
934     struct request_header __header;
935     obj_handle_t handle;
936 };
937 struct release_mutex_reply
938 {
939     struct reply_header __header;
940     unsigned int prev_count;
941 };
942
943
944
945 struct open_mutex_request
946 {
947     struct request_header __header;
948     unsigned int access;
949     unsigned int attributes;
950     obj_handle_t rootdir;
951     /* VARARG(name,unicode_str); */
952 };
953 struct open_mutex_reply
954 {
955     struct reply_header __header;
956     obj_handle_t handle;
957 };
958
959
960
961 struct create_semaphore_request
962 {
963     struct request_header __header;
964     unsigned int access;
965     unsigned int attributes;
966     unsigned int initial;
967     unsigned int max;
968     /* VARARG(objattr,object_attributes); */
969 };
970 struct create_semaphore_reply
971 {
972     struct reply_header __header;
973     obj_handle_t handle;
974 };
975
976
977
978 struct release_semaphore_request
979 {
980     struct request_header __header;
981     obj_handle_t handle;
982     unsigned int count;
983 };
984 struct release_semaphore_reply
985 {
986     struct reply_header __header;
987     unsigned int prev_count;
988 };
989
990
991
992 struct open_semaphore_request
993 {
994     struct request_header __header;
995     unsigned int access;
996     unsigned int attributes;
997     obj_handle_t rootdir;
998     /* VARARG(name,unicode_str); */
999 };
1000 struct open_semaphore_reply
1001 {
1002     struct reply_header __header;
1003     obj_handle_t handle;
1004 };
1005
1006
1007
1008 struct create_file_request
1009 {
1010     struct request_header __header;
1011     unsigned int access;
1012     unsigned int attributes;
1013     unsigned int sharing;
1014     int          create;
1015     unsigned int options;
1016     unsigned int attrs;
1017     /* VARARG(objattr,object_attributes); */
1018     /* VARARG(filename,string); */
1019 };
1020 struct create_file_reply
1021 {
1022     struct reply_header __header;
1023     obj_handle_t handle;
1024 };
1025
1026
1027
1028 struct open_file_object_request
1029 {
1030     struct request_header __header;
1031     unsigned int access;
1032     unsigned int attributes;
1033     obj_handle_t rootdir;
1034     unsigned int sharing;
1035     unsigned int options;
1036     /* VARARG(filename,unicode_str); */
1037 };
1038 struct open_file_object_reply
1039 {
1040     struct reply_header __header;
1041     obj_handle_t handle;
1042 };
1043
1044
1045
1046 struct alloc_file_handle_request
1047 {
1048     struct request_header __header;
1049     unsigned int access;
1050     unsigned int attributes;
1051     int          fd;
1052 };
1053 struct alloc_file_handle_reply
1054 {
1055     struct reply_header __header;
1056     obj_handle_t handle;
1057 };
1058
1059
1060
1061 struct get_handle_fd_request
1062 {
1063     struct request_header __header;
1064     obj_handle_t handle;
1065 };
1066 struct get_handle_fd_reply
1067 {
1068     struct reply_header __header;
1069     int          type;
1070     int          removable;
1071     unsigned int access;
1072     unsigned int options;
1073 };
1074 enum server_fd_type
1075 {
1076     FD_TYPE_INVALID,
1077     FD_TYPE_FILE,
1078     FD_TYPE_DIR,
1079     FD_TYPE_SOCKET,
1080     FD_TYPE_SERIAL,
1081     FD_TYPE_PIPE,
1082     FD_TYPE_MAILSLOT,
1083     FD_TYPE_CHAR,
1084     FD_TYPE_DEVICE,
1085     FD_TYPE_NB_TYPES
1086 };
1087
1088
1089
1090 struct flush_file_request
1091 {
1092     struct request_header __header;
1093     obj_handle_t handle;
1094 };
1095 struct flush_file_reply
1096 {
1097     struct reply_header __header;
1098     obj_handle_t event;
1099 };
1100
1101
1102
1103 struct lock_file_request
1104 {
1105     struct request_header __header;
1106     obj_handle_t handle;
1107     file_pos_t   offset;
1108     file_pos_t   count;
1109     int          shared;
1110     int          wait;
1111 };
1112 struct lock_file_reply
1113 {
1114     struct reply_header __header;
1115     obj_handle_t handle;
1116     int          overlapped;
1117 };
1118
1119
1120
1121 struct unlock_file_request
1122 {
1123     struct request_header __header;
1124     obj_handle_t handle;
1125     file_pos_t   offset;
1126     file_pos_t   count;
1127 };
1128 struct unlock_file_reply
1129 {
1130     struct reply_header __header;
1131 };
1132
1133
1134
1135 struct create_socket_request
1136 {
1137     struct request_header __header;
1138     unsigned int access;
1139     unsigned int attributes;
1140     int          family;
1141     int          type;
1142     int          protocol;
1143     unsigned int flags;
1144 };
1145 struct create_socket_reply
1146 {
1147     struct reply_header __header;
1148     obj_handle_t handle;
1149 };
1150
1151
1152
1153 struct accept_socket_request
1154 {
1155     struct request_header __header;
1156     obj_handle_t lhandle;
1157     unsigned int access;
1158     unsigned int attributes;
1159 };
1160 struct accept_socket_reply
1161 {
1162     struct reply_header __header;
1163     obj_handle_t handle;
1164 };
1165
1166
1167
1168 struct set_socket_event_request
1169 {
1170     struct request_header __header;
1171     obj_handle_t  handle;
1172     unsigned int  mask;
1173     obj_handle_t  event;
1174     user_handle_t window;
1175     unsigned int  msg;
1176 };
1177 struct set_socket_event_reply
1178 {
1179     struct reply_header __header;
1180 };
1181
1182
1183
1184 struct get_socket_event_request
1185 {
1186     struct request_header __header;
1187     obj_handle_t handle;
1188     int          service;
1189     obj_handle_t c_event;
1190 };
1191 struct get_socket_event_reply
1192 {
1193     struct reply_header __header;
1194     unsigned int mask;
1195     unsigned int pmask;
1196     unsigned int state;
1197     /* VARARG(errors,ints); */
1198 };
1199
1200
1201
1202 struct enable_socket_event_request
1203 {
1204     struct request_header __header;
1205     obj_handle_t handle;
1206     unsigned int mask;
1207     unsigned int sstate;
1208     unsigned int cstate;
1209 };
1210 struct enable_socket_event_reply
1211 {
1212     struct reply_header __header;
1213 };
1214
1215 struct set_socket_deferred_request
1216 {
1217     struct request_header __header;
1218     obj_handle_t handle;
1219     obj_handle_t deferred;
1220 };
1221 struct set_socket_deferred_reply
1222 {
1223     struct reply_header __header;
1224 };
1225
1226
1227 struct alloc_console_request
1228 {
1229     struct request_header __header;
1230     unsigned int access;
1231     unsigned int attributes;
1232     process_id_t pid;
1233 };
1234 struct alloc_console_reply
1235 {
1236     struct reply_header __header;
1237     obj_handle_t handle_in;
1238     obj_handle_t event;
1239 };
1240
1241
1242
1243 struct free_console_request
1244 {
1245     struct request_header __header;
1246 };
1247 struct free_console_reply
1248 {
1249     struct reply_header __header;
1250 };
1251
1252
1253 #define CONSOLE_RENDERER_NONE_EVENT        0x00
1254 #define CONSOLE_RENDERER_TITLE_EVENT       0x01
1255 #define CONSOLE_RENDERER_ACTIVE_SB_EVENT   0x02
1256 #define CONSOLE_RENDERER_SB_RESIZE_EVENT   0x03
1257 #define CONSOLE_RENDERER_UPDATE_EVENT      0x04
1258 #define CONSOLE_RENDERER_CURSOR_POS_EVENT  0x05
1259 #define CONSOLE_RENDERER_CURSOR_GEOM_EVENT 0x06
1260 #define CONSOLE_RENDERER_DISPLAY_EVENT     0x07
1261 #define CONSOLE_RENDERER_EXIT_EVENT        0x08
1262 struct console_renderer_event
1263 {
1264     short event;
1265     union
1266     {
1267         struct update
1268         {
1269             short top;
1270             short bottom;
1271         } update;
1272         struct resize
1273         {
1274             short width;
1275             short height;
1276         } resize;
1277         struct cursor_pos
1278         {
1279             short x;
1280             short y;
1281         } cursor_pos;
1282         struct cursor_geom
1283         {
1284             short visible;
1285             short size;
1286         } cursor_geom;
1287         struct display
1288         {
1289             short left;
1290             short top;
1291             short width;
1292             short height;
1293         } display;
1294     } u;
1295 };
1296
1297
1298 struct get_console_renderer_events_request
1299 {
1300     struct request_header __header;
1301     obj_handle_t handle;
1302 };
1303 struct get_console_renderer_events_reply
1304 {
1305     struct reply_header __header;
1306     /* VARARG(data,bytes); */
1307 };
1308
1309
1310
1311 struct open_console_request
1312 {
1313     struct request_header __header;
1314     obj_handle_t from;
1315
1316     unsigned int access;
1317     unsigned int attributes;
1318     int          share;
1319 };
1320 struct open_console_reply
1321 {
1322     struct reply_header __header;
1323     obj_handle_t handle;
1324 };
1325
1326
1327
1328 struct get_console_wait_event_request
1329 {
1330     struct request_header __header;
1331 };
1332 struct get_console_wait_event_reply
1333 {
1334     struct reply_header __header;
1335     obj_handle_t handle;
1336 };
1337
1338
1339 struct get_console_mode_request
1340 {
1341     struct request_header __header;
1342     obj_handle_t handle;
1343 };
1344 struct get_console_mode_reply
1345 {
1346     struct reply_header __header;
1347     int          mode;
1348 };
1349
1350
1351
1352 struct set_console_mode_request
1353 {
1354     struct request_header __header;
1355     obj_handle_t handle;
1356     int          mode;
1357 };
1358 struct set_console_mode_reply
1359 {
1360     struct reply_header __header;
1361 };
1362
1363
1364
1365 struct set_console_input_info_request
1366 {
1367     struct request_header __header;
1368     obj_handle_t  handle;
1369     int           mask;
1370     obj_handle_t  active_sb;
1371     int           history_mode;
1372     int           history_size;
1373     int           edition_mode;
1374     int           input_cp;
1375     int           output_cp;
1376     user_handle_t win;
1377     /* VARARG(title,unicode_str); */
1378 };
1379 struct set_console_input_info_reply
1380 {
1381     struct reply_header __header;
1382 };
1383 #define SET_CONSOLE_INPUT_INFO_ACTIVE_SB        0x01
1384 #define SET_CONSOLE_INPUT_INFO_TITLE            0x02
1385 #define SET_CONSOLE_INPUT_INFO_HISTORY_MODE     0x04
1386 #define SET_CONSOLE_INPUT_INFO_HISTORY_SIZE     0x08
1387 #define SET_CONSOLE_INPUT_INFO_EDITION_MODE     0x10
1388 #define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE   0x20
1389 #define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE  0x40
1390 #define SET_CONSOLE_INPUT_INFO_WIN              0x80
1391
1392
1393
1394 struct get_console_input_info_request
1395 {
1396     struct request_header __header;
1397     obj_handle_t  handle;
1398 };
1399 struct get_console_input_info_reply
1400 {
1401     struct reply_header __header;
1402     int           history_mode;
1403     int           history_size;
1404     int           history_index;
1405     int           edition_mode;
1406     int           input_cp;
1407     int           output_cp;
1408     user_handle_t win;
1409     /* VARARG(title,unicode_str); */
1410 };
1411
1412
1413
1414 struct append_console_input_history_request
1415 {
1416     struct request_header __header;
1417     obj_handle_t handle;
1418     /* VARARG(line,unicode_str); */
1419 };
1420 struct append_console_input_history_reply
1421 {
1422     struct reply_header __header;
1423 };
1424
1425
1426
1427 struct get_console_input_history_request
1428 {
1429     struct request_header __header;
1430     obj_handle_t handle;
1431     int          index;
1432 };
1433 struct get_console_input_history_reply
1434 {
1435     struct reply_header __header;
1436     int          total;
1437     /* VARARG(line,unicode_str); */
1438 };
1439
1440
1441
1442 struct create_console_output_request
1443 {
1444     struct request_header __header;
1445     obj_handle_t handle_in;
1446     unsigned int access;
1447     unsigned int attributes;
1448     unsigned int share;
1449 };
1450 struct create_console_output_reply
1451 {
1452     struct reply_header __header;
1453     obj_handle_t handle_out;
1454 };
1455
1456
1457
1458 struct set_console_output_info_request
1459 {
1460     struct request_header __header;
1461     obj_handle_t handle;
1462     int          mask;
1463     short int    cursor_size;
1464     short int    cursor_visible;
1465     short int    cursor_x;
1466     short int    cursor_y;
1467     short int    width;
1468     short int    height;
1469     short int    attr;
1470     short int    win_left;
1471     short int    win_top;
1472     short int    win_right;
1473     short int    win_bottom;
1474     short int    max_width;
1475     short int    max_height;
1476 };
1477 struct set_console_output_info_reply
1478 {
1479     struct reply_header __header;
1480 };
1481 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_GEOM     0x01
1482 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_POS      0x02
1483 #define SET_CONSOLE_OUTPUT_INFO_SIZE            0x04
1484 #define SET_CONSOLE_OUTPUT_INFO_ATTR            0x08
1485 #define SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW  0x10
1486 #define SET_CONSOLE_OUTPUT_INFO_MAX_SIZE        0x20
1487
1488
1489
1490 struct get_console_output_info_request
1491 {
1492     struct request_header __header;
1493     obj_handle_t handle;
1494 };
1495 struct get_console_output_info_reply
1496 {
1497     struct reply_header __header;
1498     short int    cursor_size;
1499     short int    cursor_visible;
1500     short int    cursor_x;
1501     short int    cursor_y;
1502     short int    width;
1503     short int    height;
1504     short int    attr;
1505     short int    win_left;
1506     short int    win_top;
1507     short int    win_right;
1508     short int    win_bottom;
1509     short int    max_width;
1510     short int    max_height;
1511 };
1512
1513
1514 struct write_console_input_request
1515 {
1516     struct request_header __header;
1517     obj_handle_t handle;
1518     /* VARARG(rec,input_records); */
1519 };
1520 struct write_console_input_reply
1521 {
1522     struct reply_header __header;
1523     int          written;
1524 };
1525
1526
1527
1528 struct read_console_input_request
1529 {
1530     struct request_header __header;
1531     obj_handle_t handle;
1532     int          flush;
1533 };
1534 struct read_console_input_reply
1535 {
1536     struct reply_header __header;
1537     int          read;
1538     /* VARARG(rec,input_records); */
1539 };
1540
1541
1542
1543 struct write_console_output_request
1544 {
1545     struct request_header __header;
1546     obj_handle_t handle;
1547     int          x;
1548     int          y;
1549     int          mode;
1550     int          wrap;
1551     /* VARARG(data,bytes); */
1552 };
1553 struct write_console_output_reply
1554 {
1555     struct reply_header __header;
1556     int          written;
1557     int          width;
1558     int          height;
1559 };
1560 enum char_info_mode
1561 {
1562     CHAR_INFO_MODE_TEXT,
1563     CHAR_INFO_MODE_ATTR,
1564     CHAR_INFO_MODE_TEXTATTR,
1565     CHAR_INFO_MODE_TEXTSTDATTR
1566 };
1567
1568
1569
1570 struct fill_console_output_request
1571 {
1572     struct request_header __header;
1573     obj_handle_t handle;
1574     int          x;
1575     int          y;
1576     int          mode;
1577     int          count;
1578     int          wrap;
1579     char_info_t  data;
1580 };
1581 struct fill_console_output_reply
1582 {
1583     struct reply_header __header;
1584     int          written;
1585 };
1586
1587
1588
1589 struct read_console_output_request
1590 {
1591     struct request_header __header;
1592     obj_handle_t handle;
1593     int          x;
1594     int          y;
1595     int          mode;
1596     int          wrap;
1597 };
1598 struct read_console_output_reply
1599 {
1600     struct reply_header __header;
1601     int          width;
1602     int          height;
1603     /* VARARG(data,bytes); */
1604 };
1605
1606
1607
1608 struct move_console_output_request
1609 {
1610     struct request_header __header;
1611     obj_handle_t handle;
1612     short int    x_src;
1613     short int    y_src;
1614     short int    x_dst;
1615     short int    y_dst;
1616     short int    w;
1617     short int    h;
1618 };
1619 struct move_console_output_reply
1620 {
1621     struct reply_header __header;
1622 };
1623
1624
1625
1626 struct send_console_signal_request
1627 {
1628     struct request_header __header;
1629     int          signal;
1630     process_id_t group_id;
1631 };
1632 struct send_console_signal_reply
1633 {
1634     struct reply_header __header;
1635 };
1636
1637
1638
1639 struct read_directory_changes_request
1640 {
1641     struct request_header __header;
1642     unsigned int filter;
1643     obj_handle_t handle;
1644     int          subtree;
1645     int          want_data;
1646     async_data_t async;
1647 };
1648 struct read_directory_changes_reply
1649 {
1650     struct reply_header __header;
1651 };
1652
1653
1654 struct read_change_request
1655 {
1656     struct request_header __header;
1657     obj_handle_t handle;
1658 };
1659 struct read_change_reply
1660 {
1661     struct reply_header __header;
1662     int          action;
1663     /* VARARG(name,string); */
1664 };
1665
1666
1667
1668 struct create_mapping_request
1669 {
1670     struct request_header __header;
1671     unsigned int access;
1672     unsigned int attributes;
1673     file_pos_t   size;
1674     int          protect;
1675     obj_handle_t file_handle;
1676     /* VARARG(objattr,object_attributes); */
1677 };
1678 struct create_mapping_reply
1679 {
1680     struct reply_header __header;
1681     obj_handle_t handle;
1682 };
1683
1684 #define VPROT_READ       0x01
1685 #define VPROT_WRITE      0x02
1686 #define VPROT_EXEC       0x04
1687 #define VPROT_WRITECOPY  0x08
1688 #define VPROT_GUARD      0x10
1689 #define VPROT_NOCACHE    0x20
1690 #define VPROT_COMMITTED  0x40
1691 #define VPROT_IMAGE      0x80
1692
1693
1694
1695 struct open_mapping_request
1696 {
1697     struct request_header __header;
1698     unsigned int access;
1699     unsigned int attributes;
1700     obj_handle_t rootdir;
1701     /* VARARG(name,unicode_str); */
1702 };
1703 struct open_mapping_reply
1704 {
1705     struct reply_header __header;
1706     obj_handle_t handle;
1707 };
1708
1709
1710
1711 struct get_mapping_info_request
1712 {
1713     struct request_header __header;
1714     obj_handle_t handle;
1715 };
1716 struct get_mapping_info_reply
1717 {
1718     struct reply_header __header;
1719     file_pos_t   size;
1720     int          protect;
1721     int          header_size;
1722     void*        base;
1723     obj_handle_t mapping;
1724     obj_handle_t shared_file;
1725 };
1726
1727
1728 #define SNAP_HEAPLIST   0x00000001
1729 #define SNAP_PROCESS    0x00000002
1730 #define SNAP_THREAD     0x00000004
1731 #define SNAP_MODULE     0x00000008
1732
1733 struct create_snapshot_request
1734 {
1735     struct request_header __header;
1736     unsigned int attributes;
1737     int          flags;
1738     process_id_t pid;
1739 };
1740 struct create_snapshot_reply
1741 {
1742     struct reply_header __header;
1743     obj_handle_t handle;
1744 };
1745
1746
1747
1748 struct next_process_request
1749 {
1750     struct request_header __header;
1751     obj_handle_t handle;
1752     int          reset;
1753 };
1754 struct next_process_reply
1755 {
1756     struct reply_header __header;
1757     int          count;
1758     process_id_t pid;
1759     process_id_t ppid;
1760     void*        heap;
1761     void*        module;
1762     int          threads;
1763     int          priority;
1764     int          handles;
1765     /* VARARG(filename,unicode_str); */
1766 };
1767
1768
1769
1770 struct next_thread_request
1771 {
1772     struct request_header __header;
1773     obj_handle_t handle;
1774     int          reset;
1775 };
1776 struct next_thread_reply
1777 {
1778     struct reply_header __header;
1779     int          count;
1780     process_id_t pid;
1781     thread_id_t  tid;
1782     int          base_pri;
1783     int          delta_pri;
1784 };
1785
1786
1787
1788 struct next_module_request
1789 {
1790     struct request_header __header;
1791     obj_handle_t handle;
1792     int          reset;
1793 };
1794 struct next_module_reply
1795 {
1796     struct reply_header __header;
1797     process_id_t pid;
1798     void*        base;
1799     size_t       size;
1800     /* VARARG(filename,unicode_str); */
1801 };
1802
1803
1804
1805 struct wait_debug_event_request
1806 {
1807     struct request_header __header;
1808     int           get_handle;
1809 };
1810 struct wait_debug_event_reply
1811 {
1812     struct reply_header __header;
1813     process_id_t  pid;
1814     thread_id_t   tid;
1815     obj_handle_t  wait;
1816     /* VARARG(event,debug_event); */
1817 };
1818
1819
1820
1821 struct queue_exception_event_request
1822 {
1823     struct request_header __header;
1824     int              first;
1825     /* VARARG(record,exc_event); */
1826 };
1827 struct queue_exception_event_reply
1828 {
1829     struct reply_header __header;
1830     obj_handle_t     handle;
1831 };
1832
1833
1834
1835 struct get_exception_status_request
1836 {
1837     struct request_header __header;
1838     obj_handle_t     handle;
1839 };
1840 struct get_exception_status_reply
1841 {
1842     struct reply_header __header;
1843     /* VARARG(context,context); */
1844 };
1845
1846
1847
1848 struct output_debug_string_request
1849 {
1850     struct request_header __header;
1851     void*         string;
1852     int           unicode;
1853     int           length;
1854 };
1855 struct output_debug_string_reply
1856 {
1857     struct reply_header __header;
1858 };
1859
1860
1861
1862 struct continue_debug_event_request
1863 {
1864     struct request_header __header;
1865     process_id_t pid;
1866     thread_id_t  tid;
1867     int          status;
1868 };
1869 struct continue_debug_event_reply
1870 {
1871     struct reply_header __header;
1872 };
1873
1874
1875
1876 struct debug_process_request
1877 {
1878     struct request_header __header;
1879     process_id_t pid;
1880     int          attach;
1881 };
1882 struct debug_process_reply
1883 {
1884     struct reply_header __header;
1885 };
1886
1887
1888
1889 struct debug_break_request
1890 {
1891     struct request_header __header;
1892     obj_handle_t handle;
1893 };
1894 struct debug_break_reply
1895 {
1896     struct reply_header __header;
1897     int          self;
1898 };
1899
1900
1901
1902 struct set_debugger_kill_on_exit_request
1903 {
1904     struct request_header __header;
1905     int          kill_on_exit;
1906 };
1907 struct set_debugger_kill_on_exit_reply
1908 {
1909     struct reply_header __header;
1910 };
1911
1912
1913
1914 struct read_process_memory_request
1915 {
1916     struct request_header __header;
1917     obj_handle_t handle;
1918     void*        addr;
1919 };
1920 struct read_process_memory_reply
1921 {
1922     struct reply_header __header;
1923     /* VARARG(data,bytes); */
1924 };
1925
1926
1927
1928 struct write_process_memory_request
1929 {
1930     struct request_header __header;
1931     obj_handle_t handle;
1932     void*        addr;
1933     /* VARARG(data,bytes); */
1934 };
1935 struct write_process_memory_reply
1936 {
1937     struct reply_header __header;
1938 };
1939
1940
1941
1942 struct create_key_request
1943 {
1944     struct request_header __header;
1945     obj_handle_t parent;
1946     unsigned int access;
1947     unsigned int attributes;
1948     unsigned int options;
1949     time_t       modif;
1950     data_size_t  namelen;
1951     /* VARARG(name,unicode_str,namelen); */
1952     /* VARARG(class,unicode_str); */
1953 };
1954 struct create_key_reply
1955 {
1956     struct reply_header __header;
1957     obj_handle_t hkey;
1958     int          created;
1959 };
1960
1961
1962 struct open_key_request
1963 {
1964     struct request_header __header;
1965     obj_handle_t parent;
1966     unsigned int access;
1967     unsigned int attributes;
1968     /* VARARG(name,unicode_str); */
1969 };
1970 struct open_key_reply
1971 {
1972     struct reply_header __header;
1973     obj_handle_t hkey;
1974 };
1975
1976
1977
1978 struct delete_key_request
1979 {
1980     struct request_header __header;
1981     obj_handle_t hkey;
1982 };
1983 struct delete_key_reply
1984 {
1985     struct reply_header __header;
1986 };
1987
1988
1989
1990 struct flush_key_request
1991 {
1992     struct request_header __header;
1993     obj_handle_t hkey;
1994 };
1995 struct flush_key_reply
1996 {
1997     struct reply_header __header;
1998 };
1999
2000
2001
2002 struct enum_key_request
2003 {
2004     struct request_header __header;
2005     obj_handle_t hkey;
2006     int          index;
2007     int          info_class;
2008 };
2009 struct enum_key_reply
2010 {
2011     struct reply_header __header;
2012     int          subkeys;
2013     int          max_subkey;
2014     int          max_class;
2015     int          values;
2016     int          max_value;
2017     int          max_data;
2018     time_t       modif;
2019     data_size_t  total;
2020     data_size_t  namelen;
2021     /* VARARG(name,unicode_str,namelen); */
2022     /* VARARG(class,unicode_str); */
2023 };
2024
2025
2026
2027 struct set_key_value_request
2028 {
2029     struct request_header __header;
2030     obj_handle_t hkey;
2031     int          type;
2032     data_size_t  namelen;
2033     /* VARARG(name,unicode_str,namelen); */
2034     /* VARARG(data,bytes); */
2035 };
2036 struct set_key_value_reply
2037 {
2038     struct reply_header __header;
2039 };
2040
2041
2042
2043 struct get_key_value_request
2044 {
2045     struct request_header __header;
2046     obj_handle_t hkey;
2047     /* VARARG(name,unicode_str); */
2048 };
2049 struct get_key_value_reply
2050 {
2051     struct reply_header __header;
2052     int          type;
2053     data_size_t  total;
2054     /* VARARG(data,bytes); */
2055 };
2056
2057
2058
2059 struct enum_key_value_request
2060 {
2061     struct request_header __header;
2062     obj_handle_t hkey;
2063     int          index;
2064     int          info_class;
2065 };
2066 struct enum_key_value_reply
2067 {
2068     struct reply_header __header;
2069     int          type;
2070     data_size_t  total;
2071     data_size_t  namelen;
2072     /* VARARG(name,unicode_str,namelen); */
2073     /* VARARG(data,bytes); */
2074 };
2075
2076
2077
2078 struct delete_key_value_request
2079 {
2080     struct request_header __header;
2081     obj_handle_t hkey;
2082     /* VARARG(name,unicode_str); */
2083 };
2084 struct delete_key_value_reply
2085 {
2086     struct reply_header __header;
2087 };
2088
2089
2090
2091 struct load_registry_request
2092 {
2093     struct request_header __header;
2094     obj_handle_t hkey;
2095     obj_handle_t file;
2096     /* VARARG(name,unicode_str); */
2097 };
2098 struct load_registry_reply
2099 {
2100     struct reply_header __header;
2101 };
2102
2103
2104
2105 struct unload_registry_request
2106 {
2107     struct request_header __header;
2108     obj_handle_t hkey;
2109 };
2110 struct unload_registry_reply
2111 {
2112     struct reply_header __header;
2113 };
2114
2115
2116
2117 struct save_registry_request
2118 {
2119     struct request_header __header;
2120     obj_handle_t hkey;
2121     obj_handle_t file;
2122 };
2123 struct save_registry_reply
2124 {
2125     struct reply_header __header;
2126 };
2127
2128
2129
2130 struct set_registry_notification_request
2131 {
2132     struct request_header __header;
2133     obj_handle_t hkey;
2134     obj_handle_t event;
2135     int          subtree;
2136     unsigned int filter;
2137 };
2138 struct set_registry_notification_reply
2139 {
2140     struct reply_header __header;
2141 };
2142
2143
2144
2145 struct create_timer_request
2146 {
2147     struct request_header __header;
2148     unsigned int access;
2149     unsigned int attributes;
2150     obj_handle_t rootdir;
2151     int          manual;
2152     /* VARARG(name,unicode_str); */
2153 };
2154 struct create_timer_reply
2155 {
2156     struct reply_header __header;
2157     obj_handle_t handle;
2158 };
2159
2160
2161
2162 struct open_timer_request
2163 {
2164     struct request_header __header;
2165     unsigned int access;
2166     unsigned int attributes;
2167     obj_handle_t rootdir;
2168     /* VARARG(name,unicode_str); */
2169 };
2170 struct open_timer_reply
2171 {
2172     struct reply_header __header;
2173     obj_handle_t handle;
2174 };
2175
2176
2177 struct set_timer_request
2178 {
2179     struct request_header __header;
2180     obj_handle_t handle;
2181     timeout_t    expire;
2182     int          period;
2183     void*        callback;
2184     void*        arg;
2185 };
2186 struct set_timer_reply
2187 {
2188     struct reply_header __header;
2189     int          signaled;
2190 };
2191
2192
2193 struct cancel_timer_request
2194 {
2195     struct request_header __header;
2196     obj_handle_t handle;
2197 };
2198 struct cancel_timer_reply
2199 {
2200     struct reply_header __header;
2201      int         signaled;
2202 };
2203
2204
2205 struct get_timer_info_request
2206 {
2207     struct request_header __header;
2208     obj_handle_t handle;
2209 };
2210 struct get_timer_info_reply
2211 {
2212     struct reply_header __header;
2213     timeout_t    when;
2214     int          signaled;
2215 };
2216
2217
2218
2219 struct get_thread_context_request
2220 {
2221     struct request_header __header;
2222     obj_handle_t handle;
2223     unsigned int flags;
2224     int          suspend;
2225 };
2226 struct get_thread_context_reply
2227 {
2228     struct reply_header __header;
2229     int          self;
2230     /* VARARG(context,context); */
2231 };
2232
2233
2234
2235 struct set_thread_context_request
2236 {
2237     struct request_header __header;
2238     obj_handle_t handle;
2239     unsigned int flags;
2240     int          suspend;
2241     /* VARARG(context,context); */
2242 };
2243 struct set_thread_context_reply
2244 {
2245     struct reply_header __header;
2246     int          self;
2247 };
2248
2249
2250
2251 struct get_selector_entry_request
2252 {
2253     struct request_header __header;
2254     obj_handle_t  handle;
2255     int           entry;
2256 };
2257 struct get_selector_entry_reply
2258 {
2259     struct reply_header __header;
2260     unsigned int  base;
2261     unsigned int  limit;
2262     unsigned char flags;
2263 };
2264
2265
2266
2267 struct add_atom_request
2268 {
2269     struct request_header __header;
2270     obj_handle_t  table;
2271     /* VARARG(name,unicode_str); */
2272 };
2273 struct add_atom_reply
2274 {
2275     struct reply_header __header;
2276     atom_t        atom;
2277 };
2278
2279
2280
2281 struct delete_atom_request
2282 {
2283     struct request_header __header;
2284     obj_handle_t  table;
2285     atom_t        atom;
2286 };
2287 struct delete_atom_reply
2288 {
2289     struct reply_header __header;
2290 };
2291
2292
2293
2294 struct find_atom_request
2295 {
2296     struct request_header __header;
2297     obj_handle_t table;
2298     /* VARARG(name,unicode_str); */
2299 };
2300 struct find_atom_reply
2301 {
2302     struct reply_header __header;
2303     atom_t       atom;
2304 };
2305
2306
2307
2308 struct get_atom_information_request
2309 {
2310     struct request_header __header;
2311     obj_handle_t table;
2312     atom_t       atom;
2313 };
2314 struct get_atom_information_reply
2315 {
2316     struct reply_header __header;
2317     int          count;
2318     int          pinned;
2319     data_size_t  total;
2320     /* VARARG(name,unicode_str); */
2321 };
2322
2323
2324
2325 struct set_atom_information_request
2326 {
2327     struct request_header __header;
2328     obj_handle_t table;
2329     atom_t       atom;
2330     int          pinned;
2331 };
2332 struct set_atom_information_reply
2333 {
2334     struct reply_header __header;
2335 };
2336
2337
2338
2339 struct empty_atom_table_request
2340 {
2341     struct request_header __header;
2342     obj_handle_t table;
2343     int          if_pinned;
2344 };
2345 struct empty_atom_table_reply
2346 {
2347     struct reply_header __header;
2348 };
2349
2350
2351
2352 struct init_atom_table_request
2353 {
2354     struct request_header __header;
2355     int          entries;
2356 };
2357 struct init_atom_table_reply
2358 {
2359     struct reply_header __header;
2360     obj_handle_t table;
2361 };
2362
2363
2364
2365 struct get_msg_queue_request
2366 {
2367     struct request_header __header;
2368 };
2369 struct get_msg_queue_reply
2370 {
2371     struct reply_header __header;
2372     obj_handle_t handle;
2373 };
2374
2375
2376
2377 struct set_queue_fd_request
2378 {
2379     struct request_header __header;
2380     obj_handle_t handle;
2381 };
2382 struct set_queue_fd_reply
2383 {
2384     struct reply_header __header;
2385 };
2386
2387
2388
2389 struct set_queue_mask_request
2390 {
2391     struct request_header __header;
2392     unsigned int wake_mask;
2393     unsigned int changed_mask;
2394     int          skip_wait;
2395 };
2396 struct set_queue_mask_reply
2397 {
2398     struct reply_header __header;
2399     unsigned int wake_bits;
2400     unsigned int changed_bits;
2401 };
2402
2403
2404
2405 struct get_queue_status_request
2406 {
2407     struct request_header __header;
2408     int          clear;
2409 };
2410 struct get_queue_status_reply
2411 {
2412     struct reply_header __header;
2413     unsigned int wake_bits;
2414     unsigned int changed_bits;
2415 };
2416
2417
2418
2419 struct get_process_idle_event_request
2420 {
2421     struct request_header __header;
2422     obj_handle_t handle;
2423 };
2424 struct get_process_idle_event_reply
2425 {
2426     struct reply_header __header;
2427     obj_handle_t event;
2428 };
2429
2430
2431
2432 struct send_message_request
2433 {
2434     struct request_header __header;
2435     thread_id_t     id;
2436     int             type;
2437     int             flags;
2438     user_handle_t   win;
2439     unsigned int    msg;
2440     unsigned long   wparam;
2441     unsigned long   lparam;
2442     timeout_t       timeout;
2443     /* VARARG(data,message_data); */
2444 };
2445 struct send_message_reply
2446 {
2447     struct reply_header __header;
2448 };
2449
2450 struct post_quit_message_request
2451 {
2452     struct request_header __header;
2453     int             exit_code;
2454 };
2455 struct post_quit_message_reply
2456 {
2457     struct reply_header __header;
2458 };
2459
2460 enum message_type
2461 {
2462     MSG_ASCII,
2463     MSG_UNICODE,
2464     MSG_NOTIFY,
2465     MSG_CALLBACK,
2466     MSG_CALLBACK_RESULT,
2467     MSG_OTHER_PROCESS,
2468     MSG_POSTED,
2469     MSG_HARDWARE,
2470     MSG_WINEVENT
2471 };
2472 #define SEND_MSG_ABORT_IF_HUNG  0x01
2473
2474
2475
2476 struct send_hardware_message_request
2477 {
2478     struct request_header __header;
2479     thread_id_t     id;
2480     user_handle_t   win;
2481     unsigned int    msg;
2482     unsigned int    time;
2483     unsigned long   wparam;
2484     unsigned long   lparam;
2485     unsigned long   info;
2486     int             x;
2487     int             y;
2488 };
2489 struct send_hardware_message_reply
2490 {
2491     struct reply_header __header;
2492 };
2493
2494
2495
2496 struct get_message_request
2497 {
2498     struct request_header __header;
2499     unsigned int    flags;
2500     user_handle_t   get_win;
2501     unsigned int    get_first;
2502     unsigned int    get_last;
2503     unsigned int    hw_id;
2504     unsigned int    wake_mask;
2505     unsigned int    changed_mask;
2506 };
2507 struct get_message_reply
2508 {
2509     struct reply_header __header;
2510     user_handle_t   win;
2511     int             type;
2512     unsigned int    msg;
2513     unsigned long   wparam;
2514     unsigned long   lparam;
2515     unsigned long   info;
2516     int             x;
2517     int             y;
2518     unsigned int    time;
2519     unsigned int    hw_id;
2520     unsigned int    active_hooks;
2521     data_size_t     total;
2522     /* VARARG(data,message_data); */
2523 };
2524
2525
2526
2527 struct reply_message_request
2528 {
2529     struct request_header __header;
2530     unsigned long   result;
2531     int             remove;
2532     /* VARARG(data,bytes); */
2533 };
2534 struct reply_message_reply
2535 {
2536     struct reply_header __header;
2537 };
2538
2539
2540
2541 struct accept_hardware_message_request
2542 {
2543     struct request_header __header;
2544     unsigned int    hw_id;
2545     int             remove;
2546     user_handle_t   new_win;
2547 };
2548 struct accept_hardware_message_reply
2549 {
2550     struct reply_header __header;
2551 };
2552
2553
2554
2555 struct get_message_reply_request
2556 {
2557     struct request_header __header;
2558     int             cancel;
2559 };
2560 struct get_message_reply_reply
2561 {
2562     struct reply_header __header;
2563     unsigned long   result;
2564     /* VARARG(data,bytes); */
2565 };
2566
2567
2568
2569 struct set_win_timer_request
2570 {
2571     struct request_header __header;
2572     user_handle_t   win;
2573     unsigned int    msg;
2574     unsigned int    rate;
2575     unsigned long   id;
2576     unsigned long   lparam;
2577 };
2578 struct set_win_timer_reply
2579 {
2580     struct reply_header __header;
2581     unsigned long   id;
2582 };
2583
2584
2585
2586 struct kill_win_timer_request
2587 {
2588     struct request_header __header;
2589     user_handle_t   win;
2590     unsigned int    msg;
2591     unsigned long   id;
2592 };
2593 struct kill_win_timer_reply
2594 {
2595     struct reply_header __header;
2596 };
2597
2598
2599
2600 struct is_window_hung_request
2601 {
2602     struct request_header __header;
2603     user_handle_t   win;
2604 };
2605 struct is_window_hung_reply
2606 {
2607     struct reply_header __header;
2608     int is_hung;
2609 };
2610
2611
2612
2613 struct get_serial_info_request
2614 {
2615     struct request_header __header;
2616     obj_handle_t handle;
2617 };
2618 struct get_serial_info_reply
2619 {
2620     struct reply_header __header;
2621     unsigned int readinterval;
2622     unsigned int readconst;
2623     unsigned int readmult;
2624     unsigned int writeconst;
2625     unsigned int writemult;
2626     unsigned int eventmask;
2627 };
2628
2629
2630
2631 struct set_serial_info_request
2632 {
2633     struct request_header __header;
2634     obj_handle_t handle;
2635     int          flags;
2636     unsigned int readinterval;
2637     unsigned int readconst;
2638     unsigned int readmult;
2639     unsigned int writeconst;
2640     unsigned int writemult;
2641     unsigned int eventmask;
2642 };
2643 struct set_serial_info_reply
2644 {
2645     struct reply_header __header;
2646 };
2647 #define SERIALINFO_SET_TIMEOUTS  0x01
2648 #define SERIALINFO_SET_MASK      0x02
2649
2650
2651
2652 struct register_async_request
2653 {
2654     struct request_header __header;
2655     obj_handle_t handle;
2656     int          type;
2657     int          count;
2658     async_data_t async;
2659 };
2660 struct register_async_reply
2661 {
2662     struct reply_header __header;
2663 };
2664 #define ASYNC_TYPE_READ  0x01
2665 #define ASYNC_TYPE_WRITE 0x02
2666 #define ASYNC_TYPE_WAIT  0x03
2667
2668
2669
2670 struct cancel_async_request
2671 {
2672     struct request_header __header;
2673     obj_handle_t handle;
2674 };
2675 struct cancel_async_reply
2676 {
2677     struct reply_header __header;
2678 };
2679
2680
2681
2682 struct ioctl_request
2683 {
2684     struct request_header __header;
2685     obj_handle_t   handle;
2686     ioctl_code_t   code;
2687     async_data_t   async;
2688     /* VARARG(in_data,bytes); */
2689 };
2690 struct ioctl_reply
2691 {
2692     struct reply_header __header;
2693     obj_handle_t   wait;
2694     unsigned int   options;
2695     /* VARARG(out_data,bytes); */
2696 };
2697
2698
2699
2700 struct get_ioctl_result_request
2701 {
2702     struct request_header __header;
2703     obj_handle_t   handle;
2704     void*          user_arg;
2705 };
2706 struct get_ioctl_result_reply
2707 {
2708     struct reply_header __header;
2709     /* VARARG(out_data,bytes); */
2710 };
2711
2712
2713
2714 struct create_named_pipe_request
2715 {
2716     struct request_header __header;
2717     unsigned int   access;
2718     unsigned int   attributes;
2719     obj_handle_t   rootdir;
2720     unsigned int   options;
2721     unsigned int   flags;
2722     unsigned int   maxinstances;
2723     unsigned int   outsize;
2724     unsigned int   insize;
2725     timeout_t      timeout;
2726     /* VARARG(name,unicode_str); */
2727 };
2728 struct create_named_pipe_reply
2729 {
2730     struct reply_header __header;
2731     obj_handle_t   handle;
2732 };
2733
2734
2735 #define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
2736 #define NAMED_PIPE_MESSAGE_STREAM_READ  0x0002
2737 #define NAMED_PIPE_NONBLOCKING_MODE     0x0004
2738 #define NAMED_PIPE_SERVER_END           0x8000
2739
2740
2741 struct get_named_pipe_info_request
2742 {
2743     struct request_header __header;
2744     obj_handle_t   handle;
2745 };
2746 struct get_named_pipe_info_reply
2747 {
2748     struct reply_header __header;
2749     unsigned int   flags;
2750     unsigned int   maxinstances;
2751     unsigned int   instances;
2752     unsigned int   outsize;
2753     unsigned int   insize;
2754 };
2755
2756
2757
2758 struct create_window_request
2759 {
2760     struct request_header __header;
2761     user_handle_t  parent;
2762     user_handle_t  owner;
2763     atom_t         atom;
2764     void*          instance;
2765     /* VARARG(class,unicode_str); */
2766 };
2767 struct create_window_reply
2768 {
2769     struct reply_header __header;
2770     user_handle_t  handle;
2771     user_handle_t  parent;
2772     user_handle_t  owner;
2773     int            extra;
2774     void*          class_ptr;
2775 };
2776
2777
2778
2779 struct destroy_window_request
2780 {
2781     struct request_header __header;
2782     user_handle_t  handle;
2783 };
2784 struct destroy_window_reply
2785 {
2786     struct reply_header __header;
2787 };
2788
2789
2790
2791 struct get_desktop_window_request
2792 {
2793     struct request_header __header;
2794     int            force;
2795 };
2796 struct get_desktop_window_reply
2797 {
2798     struct reply_header __header;
2799     user_handle_t  top_window;
2800     user_handle_t  msg_window;
2801 };
2802
2803
2804
2805 struct set_window_owner_request
2806 {
2807     struct request_header __header;
2808     user_handle_t  handle;
2809     user_handle_t  owner;
2810 };
2811 struct set_window_owner_reply
2812 {
2813     struct reply_header __header;
2814     user_handle_t  full_owner;
2815     user_handle_t  prev_owner;
2816 };
2817
2818
2819
2820 struct get_window_info_request
2821 {
2822     struct request_header __header;
2823     user_handle_t  handle;
2824 };
2825 struct get_window_info_reply
2826 {
2827     struct reply_header __header;
2828     user_handle_t  full_handle;
2829     user_handle_t  last_active;
2830     process_id_t   pid;
2831     thread_id_t    tid;
2832     atom_t         atom;
2833     int            is_unicode;
2834 };
2835
2836
2837
2838 struct set_window_info_request
2839 {
2840     struct request_header __header;
2841     unsigned int   flags;
2842     user_handle_t  handle;
2843     unsigned int   style;
2844     unsigned int   ex_style;
2845     unsigned int   id;
2846     int            is_unicode;
2847     void*          instance;
2848     unsigned long  user_data;
2849     int            extra_offset;
2850     data_size_t    extra_size;
2851     unsigned long  extra_value;
2852 };
2853 struct set_window_info_reply
2854 {
2855     struct reply_header __header;
2856     unsigned int   old_style;
2857     unsigned int   old_ex_style;
2858     unsigned int   old_id;
2859     void*          old_instance;
2860     unsigned long  old_user_data;
2861     unsigned long  old_extra_value;
2862 };
2863 #define SET_WIN_STYLE     0x01
2864 #define SET_WIN_EXSTYLE   0x02
2865 #define SET_WIN_ID        0x04
2866 #define SET_WIN_INSTANCE  0x08
2867 #define SET_WIN_USERDATA  0x10
2868 #define SET_WIN_EXTRA     0x20
2869 #define SET_WIN_UNICODE   0x40
2870
2871
2872
2873 struct set_parent_request
2874 {
2875     struct request_header __header;
2876     user_handle_t  handle;
2877     user_handle_t  parent;
2878 };
2879 struct set_parent_reply
2880 {
2881     struct reply_header __header;
2882     user_handle_t  old_parent;
2883     user_handle_t  full_parent;
2884 };
2885
2886
2887
2888 struct get_window_parents_request
2889 {
2890     struct request_header __header;
2891     user_handle_t  handle;
2892 };
2893 struct get_window_parents_reply
2894 {
2895     struct reply_header __header;
2896     int            count;
2897     /* VARARG(parents,user_handles); */
2898 };
2899
2900
2901
2902 struct get_window_children_request
2903 {
2904     struct request_header __header;
2905     obj_handle_t   desktop;
2906     user_handle_t  parent;
2907     atom_t         atom;
2908     thread_id_t    tid;
2909     /* VARARG(class,unicode_str); */
2910 };
2911 struct get_window_children_reply
2912 {
2913     struct reply_header __header;
2914     int            count;
2915     /* VARARG(children,user_handles); */
2916 };
2917
2918
2919
2920 struct get_window_children_from_point_request
2921 {
2922     struct request_header __header;
2923     user_handle_t  parent;
2924     int            x;
2925     int            y;
2926 };
2927 struct get_window_children_from_point_reply
2928 {
2929     struct reply_header __header;
2930     int            count;
2931     /* VARARG(children,user_handles); */
2932 };
2933
2934
2935
2936 struct get_window_tree_request
2937 {
2938     struct request_header __header;
2939     user_handle_t  handle;
2940 };
2941 struct get_window_tree_reply
2942 {
2943     struct reply_header __header;
2944     user_handle_t  parent;
2945     user_handle_t  owner;
2946     user_handle_t  next_sibling;
2947     user_handle_t  prev_sibling;
2948     user_handle_t  first_sibling;
2949     user_handle_t  last_sibling;
2950     user_handle_t  first_child;
2951     user_handle_t  last_child;
2952 };
2953
2954
2955 struct set_window_pos_request
2956 {
2957     struct request_header __header;
2958     unsigned int   flags;
2959     user_handle_t  handle;
2960     user_handle_t  previous;
2961     rectangle_t    window;
2962     rectangle_t    client;
2963     /* VARARG(valid,rectangles); */
2964 };
2965 struct set_window_pos_reply
2966 {
2967     struct reply_header __header;
2968     unsigned int   new_style;
2969     unsigned int   new_ex_style;
2970 };
2971
2972
2973
2974 struct get_window_rectangles_request
2975 {
2976     struct request_header __header;
2977     user_handle_t  handle;
2978 };
2979 struct get_window_rectangles_reply
2980 {
2981     struct reply_header __header;
2982     rectangle_t    window;
2983     rectangle_t    visible;
2984     rectangle_t    client;
2985 };
2986
2987
2988
2989 struct get_window_text_request
2990 {
2991     struct request_header __header;
2992     user_handle_t  handle;
2993 };
2994 struct get_window_text_reply
2995 {
2996     struct reply_header __header;
2997     /* VARARG(text,unicode_str); */
2998 };
2999
3000
3001
3002 struct set_window_text_request
3003 {
3004     struct request_header __header;
3005     user_handle_t  handle;
3006     /* VARARG(text,unicode_str); */
3007 };
3008 struct set_window_text_reply
3009 {
3010     struct reply_header __header;
3011 };
3012
3013
3014
3015 struct get_windows_offset_request
3016 {
3017     struct request_header __header;
3018     user_handle_t  from;
3019     user_handle_t  to;
3020 };
3021 struct get_windows_offset_reply
3022 {
3023     struct reply_header __header;
3024     int            x;
3025     int            y;
3026 };
3027
3028
3029
3030 struct get_visible_region_request
3031 {
3032     struct request_header __header;
3033     user_handle_t  window;
3034     unsigned int   flags;
3035 };
3036 struct get_visible_region_reply
3037 {
3038     struct reply_header __header;
3039     user_handle_t  top_win;
3040     rectangle_t    top_rect;
3041     rectangle_t    win_rect;
3042     data_size_t    total_size;
3043     /* VARARG(region,rectangles); */
3044 };
3045
3046
3047
3048 struct get_window_region_request
3049 {
3050     struct request_header __header;
3051     user_handle_t  window;
3052 };
3053 struct get_window_region_reply
3054 {
3055     struct reply_header __header;
3056     data_size_t    total_size;
3057     /* VARARG(region,rectangles); */
3058 };
3059
3060
3061
3062 struct set_window_region_request
3063 {
3064     struct request_header __header;
3065     user_handle_t  window;
3066     int            redraw;
3067     /* VARARG(region,rectangles); */
3068 };
3069 struct set_window_region_reply
3070 {
3071     struct reply_header __header;
3072 };
3073
3074
3075
3076 struct get_update_region_request
3077 {
3078     struct request_header __header;
3079     user_handle_t  window;
3080     user_handle_t  from_child;
3081     unsigned int   flags;
3082 };
3083 struct get_update_region_reply
3084 {
3085     struct reply_header __header;
3086     user_handle_t  child;
3087     unsigned int   flags;
3088     data_size_t    total_size;
3089     /* VARARG(region,rectangles); */
3090 };
3091 #define UPDATE_NONCLIENT       0x01
3092 #define UPDATE_ERASE           0x02
3093 #define UPDATE_PAINT           0x04
3094 #define UPDATE_INTERNALPAINT   0x08
3095 #define UPDATE_ALLCHILDREN     0x10
3096 #define UPDATE_NOCHILDREN      0x20
3097 #define UPDATE_NOREGION        0x40
3098 #define UPDATE_DELAYED_ERASE   0x80
3099
3100
3101
3102 struct update_window_zorder_request
3103 {
3104     struct request_header __header;
3105     user_handle_t  window;
3106     rectangle_t    rect;
3107 };
3108 struct update_window_zorder_reply
3109 {
3110     struct reply_header __header;
3111 };
3112
3113
3114
3115 struct redraw_window_request
3116 {
3117     struct request_header __header;
3118     user_handle_t  window;
3119     unsigned int   flags;
3120     /* VARARG(region,rectangles); */
3121 };
3122 struct redraw_window_reply
3123 {
3124     struct reply_header __header;
3125 };
3126
3127
3128
3129 struct set_window_property_request
3130 {
3131     struct request_header __header;
3132     user_handle_t  window;
3133     atom_t         atom;
3134     obj_handle_t   handle;
3135     /* VARARG(name,unicode_str); */
3136 };
3137 struct set_window_property_reply
3138 {
3139     struct reply_header __header;
3140 };
3141
3142
3143
3144 struct remove_window_property_request
3145 {
3146     struct request_header __header;
3147     user_handle_t  window;
3148     atom_t         atom;
3149     /* VARARG(name,unicode_str); */
3150 };
3151 struct remove_window_property_reply
3152 {
3153     struct reply_header __header;
3154     obj_handle_t   handle;
3155 };
3156
3157
3158
3159 struct get_window_property_request
3160 {
3161     struct request_header __header;
3162     user_handle_t  window;
3163     atom_t         atom;
3164     /* VARARG(name,unicode_str); */
3165 };
3166 struct get_window_property_reply
3167 {
3168     struct reply_header __header;
3169     obj_handle_t   handle;
3170 };
3171
3172
3173
3174 struct get_window_properties_request
3175 {
3176     struct request_header __header;
3177     user_handle_t  window;
3178 };
3179 struct get_window_properties_reply
3180 {
3181     struct reply_header __header;
3182     int            total;
3183     /* VARARG(props,properties); */
3184 };
3185
3186
3187
3188 struct create_winstation_request
3189 {
3190     struct request_header __header;
3191     unsigned int flags;
3192     unsigned int access;
3193     unsigned int attributes;
3194     /* VARARG(name,unicode_str); */
3195 };
3196 struct create_winstation_reply
3197 {
3198     struct reply_header __header;
3199     obj_handle_t handle;
3200 };
3201
3202
3203
3204 struct open_winstation_request
3205 {
3206     struct request_header __header;
3207     unsigned int access;
3208     unsigned int attributes;
3209     /* VARARG(name,unicode_str); */
3210 };
3211 struct open_winstation_reply
3212 {
3213     struct reply_header __header;
3214     obj_handle_t handle;
3215 };
3216
3217
3218
3219 struct close_winstation_request
3220 {
3221     struct request_header __header;
3222     obj_handle_t handle;
3223 };
3224 struct close_winstation_reply
3225 {
3226     struct reply_header __header;
3227 };
3228
3229
3230
3231 struct get_process_winstation_request
3232 {
3233     struct request_header __header;
3234 };
3235 struct get_process_winstation_reply
3236 {
3237     struct reply_header __header;
3238     obj_handle_t handle;
3239 };
3240
3241
3242
3243 struct set_process_winstation_request
3244 {
3245     struct request_header __header;
3246     obj_handle_t handle;
3247 };
3248 struct set_process_winstation_reply
3249 {
3250     struct reply_header __header;
3251 };
3252
3253
3254
3255 struct enum_winstation_request
3256 {
3257     struct request_header __header;
3258     unsigned int index;
3259 };
3260 struct enum_winstation_reply
3261 {
3262     struct reply_header __header;
3263     unsigned int next;
3264     /* VARARG(name,unicode_str); */
3265 };
3266
3267
3268
3269 struct create_desktop_request
3270 {
3271     struct request_header __header;
3272     unsigned int flags;
3273     unsigned int access;
3274     unsigned int attributes;
3275     /* VARARG(name,unicode_str); */
3276 };
3277 struct create_desktop_reply
3278 {
3279     struct reply_header __header;
3280     obj_handle_t handle;
3281 };
3282
3283
3284
3285 struct open_desktop_request
3286 {
3287     struct request_header __header;
3288     obj_handle_t winsta;
3289     unsigned int flags;
3290     unsigned int access;
3291     unsigned int attributes;
3292     /* VARARG(name,unicode_str); */
3293 };
3294 struct open_desktop_reply
3295 {
3296     struct reply_header __header;
3297     obj_handle_t handle;
3298 };
3299
3300
3301
3302 struct close_desktop_request
3303 {
3304     struct request_header __header;
3305     obj_handle_t handle;
3306 };
3307 struct close_desktop_reply
3308 {
3309     struct reply_header __header;
3310 };
3311
3312
3313
3314 struct get_thread_desktop_request
3315 {
3316     struct request_header __header;
3317     thread_id_t  tid;
3318 };
3319 struct get_thread_desktop_reply
3320 {
3321     struct reply_header __header;
3322     obj_handle_t handle;
3323 };
3324
3325
3326
3327 struct set_thread_desktop_request
3328 {
3329     struct request_header __header;
3330     obj_handle_t handle;
3331 };
3332 struct set_thread_desktop_reply
3333 {
3334     struct reply_header __header;
3335 };
3336
3337
3338
3339 struct enum_desktop_request
3340 {
3341     struct request_header __header;
3342     obj_handle_t winstation;
3343     unsigned int index;
3344 };
3345 struct enum_desktop_reply
3346 {
3347     struct reply_header __header;
3348     unsigned int next;
3349     /* VARARG(name,unicode_str); */
3350 };
3351
3352
3353
3354 struct set_user_object_info_request
3355 {
3356     struct request_header __header;
3357     obj_handle_t handle;
3358     unsigned int flags;
3359     unsigned int obj_flags;
3360 };
3361 struct set_user_object_info_reply
3362 {
3363     struct reply_header __header;
3364     int          is_desktop;
3365     unsigned int old_obj_flags;
3366     /* VARARG(name,unicode_str); */
3367 };
3368 #define SET_USER_OBJECT_FLAGS 1
3369
3370
3371
3372 struct attach_thread_input_request
3373 {
3374     struct request_header __header;
3375     thread_id_t    tid_from;
3376     thread_id_t    tid_to;
3377     int            attach;
3378 };
3379 struct attach_thread_input_reply
3380 {
3381     struct reply_header __header;
3382 };
3383
3384
3385
3386 struct get_thread_input_request
3387 {
3388     struct request_header __header;
3389     thread_id_t    tid;
3390 };
3391 struct get_thread_input_reply
3392 {
3393     struct reply_header __header;
3394     user_handle_t  focus;
3395     user_handle_t  capture;
3396     user_handle_t  active;
3397     user_handle_t  foreground;
3398     user_handle_t  menu_owner;
3399     user_handle_t  move_size;
3400     user_handle_t  caret;
3401     rectangle_t    rect;
3402 };
3403
3404
3405
3406 struct get_last_input_time_request
3407 {
3408     struct request_header __header;
3409 };
3410 struct get_last_input_time_reply
3411 {
3412     struct reply_header __header;
3413     unsigned int time;
3414 };
3415
3416
3417
3418 struct get_key_state_request
3419 {
3420     struct request_header __header;
3421     thread_id_t    tid;
3422     int            key;
3423 };
3424 struct get_key_state_reply
3425 {
3426     struct reply_header __header;
3427     unsigned char  state;
3428     /* VARARG(keystate,bytes); */
3429 };
3430
3431
3432 struct set_key_state_request
3433 {
3434     struct request_header __header;
3435     thread_id_t    tid;
3436     /* VARARG(keystate,bytes); */
3437 };
3438 struct set_key_state_reply
3439 {
3440     struct reply_header __header;
3441 };
3442
3443
3444 struct set_foreground_window_request
3445 {
3446     struct request_header __header;
3447     user_handle_t  handle;
3448 };
3449 struct set_foreground_window_reply
3450 {
3451     struct reply_header __header;
3452     user_handle_t  previous;
3453     int            send_msg_old;
3454     int            send_msg_new;
3455 };
3456
3457
3458 struct set_focus_window_request
3459 {
3460     struct request_header __header;
3461     user_handle_t  handle;
3462 };
3463 struct set_focus_window_reply
3464 {
3465     struct reply_header __header;
3466     user_handle_t  previous;
3467 };
3468
3469
3470 struct set_active_window_request
3471 {
3472     struct request_header __header;
3473     user_handle_t  handle;
3474 };
3475 struct set_active_window_reply
3476 {
3477     struct reply_header __header;
3478     user_handle_t  previous;
3479 };
3480
3481
3482 struct set_capture_window_request
3483 {
3484     struct request_header __header;
3485     user_handle_t  handle;
3486     unsigned int   flags;
3487 };
3488 struct set_capture_window_reply
3489 {
3490     struct reply_header __header;
3491     user_handle_t  previous;
3492     user_handle_t  full_handle;
3493 };
3494 #define CAPTURE_MENU     0x01
3495 #define CAPTURE_MOVESIZE 0x02
3496
3497
3498
3499 struct set_caret_window_request
3500 {
3501     struct request_header __header;
3502     user_handle_t  handle;
3503     int            width;
3504     int            height;
3505 };
3506 struct set_caret_window_reply
3507 {
3508     struct reply_header __header;
3509     user_handle_t  previous;
3510     rectangle_t    old_rect;
3511     int            old_hide;
3512     int            old_state;
3513 };
3514
3515
3516
3517 struct set_caret_info_request
3518 {
3519     struct request_header __header;
3520     unsigned int   flags;
3521     user_handle_t  handle;
3522     int            x;
3523     int            y;
3524     int            hide;
3525     int            state;
3526 };
3527 struct set_caret_info_reply
3528 {
3529     struct reply_header __header;
3530     user_handle_t  full_handle;
3531     rectangle_t    old_rect;
3532     int            old_hide;
3533     int            old_state;
3534 };
3535 #define SET_CARET_POS        0x01
3536 #define SET_CARET_HIDE       0x02
3537 #define SET_CARET_STATE      0x04
3538
3539
3540
3541 struct set_hook_request
3542 {
3543     struct request_header __header;
3544     int            id;
3545     process_id_t   pid;
3546     thread_id_t    tid;
3547     int            event_min;
3548     int            event_max;
3549     int            flags;
3550     void*          proc;
3551     int            unicode;
3552     /* VARARG(module,unicode_str); */
3553 };
3554 struct set_hook_reply
3555 {
3556     struct reply_header __header;
3557     user_handle_t  handle;
3558     unsigned int   active_hooks;
3559 };
3560
3561
3562
3563 struct remove_hook_request
3564 {
3565     struct request_header __header;
3566     user_handle_t  handle;
3567     int            id;
3568     void*          proc;
3569 };
3570 struct remove_hook_reply
3571 {
3572     struct reply_header __header;
3573     unsigned int   active_hooks;
3574 };
3575
3576
3577
3578 struct start_hook_chain_request
3579 {
3580     struct request_header __header;
3581     int            id;
3582     int            event;
3583     user_handle_t  window;
3584     int            object_id;
3585     int            child_id;
3586 };
3587 struct start_hook_chain_reply
3588 {
3589     struct reply_header __header;
3590     user_handle_t  handle;
3591     process_id_t   pid;
3592     thread_id_t    tid;
3593     void*          proc;
3594     int            unicode;
3595     unsigned int   active_hooks;
3596     /* VARARG(module,unicode_str); */
3597 };
3598
3599
3600
3601 struct finish_hook_chain_request
3602 {
3603     struct request_header __header;
3604     int            id;
3605 };
3606 struct finish_hook_chain_reply
3607 {
3608     struct reply_header __header;
3609 };
3610
3611
3612
3613 struct get_hook_info_request
3614 {
3615     struct request_header __header;
3616     user_handle_t  handle;
3617     int            get_next;
3618     int            event;
3619     user_handle_t  window;
3620     int            object_id;
3621     int            child_id;
3622 };
3623 struct get_hook_info_reply
3624 {
3625     struct reply_header __header;
3626     user_handle_t  handle;
3627     int            id;
3628     process_id_t   pid;
3629     thread_id_t    tid;
3630     void*          proc;
3631     int            unicode;
3632     /* VARARG(module,unicode_str); */
3633 };
3634
3635
3636
3637 struct create_class_request
3638 {
3639     struct request_header __header;
3640     int            local;
3641     atom_t         atom;
3642     unsigned int   style;
3643     void*          instance;
3644     int            extra;
3645     int            win_extra;
3646     void*          client_ptr;
3647     /* VARARG(name,unicode_str); */
3648 };
3649 struct create_class_reply
3650 {
3651     struct reply_header __header;
3652     atom_t         atom;
3653 };
3654
3655
3656
3657 struct destroy_class_request
3658 {
3659     struct request_header __header;
3660     atom_t         atom;
3661     void*          instance;
3662     /* VARARG(name,unicode_str); */
3663 };
3664 struct destroy_class_reply
3665 {
3666     struct reply_header __header;
3667     void*          client_ptr;
3668 };
3669
3670
3671
3672 struct set_class_info_request
3673 {
3674     struct request_header __header;
3675     user_handle_t  window;
3676     unsigned int   flags;
3677     atom_t         atom;
3678     unsigned int   style;
3679     int            win_extra;
3680     void*          instance;
3681     int            extra_offset;
3682     data_size_t    extra_size;
3683     unsigned long  extra_value;
3684 };
3685 struct set_class_info_reply
3686 {
3687     struct reply_header __header;
3688     atom_t         old_atom;
3689     unsigned int   old_style;
3690     int            old_extra;
3691     int            old_win_extra;
3692     void*          old_instance;
3693     unsigned long  old_extra_value;
3694 };
3695 #define SET_CLASS_ATOM      0x0001
3696 #define SET_CLASS_STYLE     0x0002
3697 #define SET_CLASS_WINEXTRA  0x0004
3698 #define SET_CLASS_INSTANCE  0x0008
3699 #define SET_CLASS_EXTRA     0x0010
3700
3701
3702
3703 struct set_clipboard_info_request
3704 {
3705     struct request_header __header;
3706     unsigned int   flags;
3707     user_handle_t  clipboard;
3708     user_handle_t  owner;
3709     user_handle_t  viewer;
3710     unsigned int   seqno;
3711 };
3712 struct set_clipboard_info_reply
3713 {
3714     struct reply_header __header;
3715     unsigned int   flags;
3716     user_handle_t  old_clipboard;
3717     user_handle_t  old_owner;
3718     user_handle_t  old_viewer;
3719     unsigned int   seqno;
3720 };
3721
3722 #define SET_CB_OPEN      0x001
3723 #define SET_CB_OWNER     0x002
3724 #define SET_CB_VIEWER    0x004
3725 #define SET_CB_SEQNO     0x008
3726 #define SET_CB_RELOWNER  0x010
3727 #define SET_CB_CLOSE     0x020
3728 #define CB_OPEN          0x040
3729 #define CB_OWNER         0x080
3730 #define CB_PROCESS       0x100
3731
3732
3733
3734 struct open_token_request
3735 {
3736     struct request_header __header;
3737     obj_handle_t   handle;
3738     unsigned int   access;
3739     unsigned int   attributes;
3740     unsigned int   flags;
3741 };
3742 struct open_token_reply
3743 {
3744     struct reply_header __header;
3745     obj_handle_t   token;
3746 };
3747 #define OPEN_TOKEN_THREAD   1
3748 #define OPEN_TOKEN_AS_SELF  2
3749
3750
3751
3752 struct set_global_windows_request
3753 {
3754     struct request_header __header;
3755     unsigned int   flags;
3756     user_handle_t  shell_window;
3757     user_handle_t  shell_listview;
3758     user_handle_t  progman_window;
3759     user_handle_t  taskman_window;
3760 };
3761 struct set_global_windows_reply
3762 {
3763     struct reply_header __header;
3764     user_handle_t  old_shell_window;
3765     user_handle_t  old_shell_listview;
3766     user_handle_t  old_progman_window;
3767     user_handle_t  old_taskman_window;
3768 };
3769 #define SET_GLOBAL_SHELL_WINDOWS   0x01
3770 #define SET_GLOBAL_PROGMAN_WINDOW  0x02
3771 #define SET_GLOBAL_TASKMAN_WINDOW  0x04
3772
3773
3774 struct adjust_token_privileges_request
3775 {
3776     struct request_header __header;
3777     obj_handle_t  handle;
3778     int           disable_all;
3779     int           get_modified_state;
3780     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3781 };
3782 struct adjust_token_privileges_reply
3783 {
3784     struct reply_header __header;
3785     unsigned int  len;
3786     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3787 };
3788
3789
3790 struct get_token_privileges_request
3791 {
3792     struct request_header __header;
3793     obj_handle_t  handle;
3794 };
3795 struct get_token_privileges_reply
3796 {
3797     struct reply_header __header;
3798     unsigned int  len;
3799     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3800 };
3801
3802
3803 struct check_token_privileges_request
3804 {
3805     struct request_header __header;
3806     obj_handle_t  handle;
3807     int           all_required;
3808     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3809 };
3810 struct check_token_privileges_reply
3811 {
3812     struct reply_header __header;
3813     int           has_privileges;
3814     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3815 };
3816
3817 struct duplicate_token_request
3818 {
3819     struct request_header __header;
3820     obj_handle_t  handle;
3821     unsigned int  access;
3822     unsigned int  attributes;
3823     int           primary;
3824     int           impersonation_level;
3825 };
3826 struct duplicate_token_reply
3827 {
3828     struct reply_header __header;
3829     obj_handle_t  new_handle;
3830 };
3831
3832 struct access_check_request
3833 {
3834     struct request_header __header;
3835     obj_handle_t    handle;
3836     unsigned int    desired_access;
3837     unsigned int    mapping_read;
3838     unsigned int    mapping_write;
3839     unsigned int    mapping_execute;
3840     unsigned int    mapping_all;
3841     /* VARARG(sd,security_descriptor); */
3842 };
3843 struct access_check_reply
3844 {
3845     struct reply_header __header;
3846     unsigned int    access_granted;
3847     unsigned int    access_status;
3848     unsigned int    privileges_len;
3849     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
3850 };
3851
3852 struct get_token_user_request
3853 {
3854     struct request_header __header;
3855     obj_handle_t    handle;
3856 };
3857 struct get_token_user_reply
3858 {
3859     struct reply_header __header;
3860     data_size_t     user_len;
3861     /* VARARG(user,SID); */
3862 };
3863
3864 struct get_token_groups_request
3865 {
3866     struct request_header __header;
3867     obj_handle_t    handle;
3868 };
3869 struct get_token_groups_reply
3870 {
3871     struct reply_header __header;
3872     data_size_t     user_len;
3873     /* VARARG(user,token_groups); */
3874 };
3875
3876 struct set_security_object_request
3877 {
3878     struct request_header __header;
3879     obj_handle_t    handle;
3880     unsigned int    security_info;
3881     /* VARARG(sd,security_descriptor); */
3882 };
3883 struct set_security_object_reply
3884 {
3885     struct reply_header __header;
3886 };
3887
3888 struct get_security_object_request
3889 {
3890     struct request_header __header;
3891     obj_handle_t    handle;
3892     unsigned int    security_info;
3893 };
3894 struct get_security_object_reply
3895 {
3896     struct reply_header __header;
3897     unsigned int    sd_len;
3898     /* VARARG(sd,security_descriptor); */
3899 };
3900
3901
3902 struct create_mailslot_request
3903 {
3904     struct request_header __header;
3905     unsigned int   access;
3906     unsigned int   attributes;
3907     obj_handle_t   rootdir;
3908     unsigned int   max_msgsize;
3909     timeout_t      read_timeout;
3910     /* VARARG(name,unicode_str); */
3911 };
3912 struct create_mailslot_reply
3913 {
3914     struct reply_header __header;
3915     obj_handle_t   handle;
3916 };
3917
3918
3919
3920 struct set_mailslot_info_request
3921 {
3922     struct request_header __header;
3923     obj_handle_t   handle;
3924     unsigned int   flags;
3925     timeout_t      read_timeout;
3926 };
3927 struct set_mailslot_info_reply
3928 {
3929     struct reply_header __header;
3930     unsigned int   max_msgsize;
3931     timeout_t      read_timeout;
3932 };
3933 #define MAILSLOT_SET_READ_TIMEOUT  1
3934
3935
3936
3937 struct create_directory_request
3938 {
3939     struct request_header __header;
3940     unsigned int   access;
3941     unsigned int   attributes;
3942     obj_handle_t   rootdir;
3943     /* VARARG(directory_name,unicode_str); */
3944 };
3945 struct create_directory_reply
3946 {
3947     struct reply_header __header;
3948     obj_handle_t   handle;
3949 };
3950
3951
3952
3953 struct open_directory_request
3954 {
3955     struct request_header __header;
3956     unsigned int   access;
3957     unsigned int   attributes;
3958     obj_handle_t   rootdir;
3959     /* VARARG(directory_name,unicode_str); */
3960 };
3961 struct open_directory_reply
3962 {
3963     struct reply_header __header;
3964     obj_handle_t   handle;
3965 };
3966
3967
3968
3969 struct get_directory_entry_request
3970 {
3971     struct request_header __header;
3972     obj_handle_t   handle;
3973     unsigned int   index;
3974 };
3975 struct get_directory_entry_reply
3976 {
3977     struct reply_header __header;
3978     size_t         name_len;
3979     /* VARARG(name,unicode_str,name_len); */
3980     /* VARARG(type,unicode_str); */
3981 };
3982
3983
3984
3985 struct create_symlink_request
3986 {
3987     struct request_header __header;
3988     unsigned int   access;
3989     unsigned int   attributes;
3990     obj_handle_t   rootdir;
3991     data_size_t    name_len;
3992     /* VARARG(name,unicode_str,name_len); */
3993     /* VARARG(target_name,unicode_str); */
3994 };
3995 struct create_symlink_reply
3996 {
3997     struct reply_header __header;
3998     obj_handle_t   handle;
3999 };
4000
4001
4002
4003 struct open_symlink_request
4004 {
4005     struct request_header __header;
4006     unsigned int   access;
4007     unsigned int   attributes;
4008     obj_handle_t   rootdir;
4009     /* VARARG(name,unicode_str); */
4010 };
4011 struct open_symlink_reply
4012 {
4013     struct reply_header __header;
4014     obj_handle_t   handle;
4015 };
4016
4017
4018
4019 struct query_symlink_request
4020 {
4021     struct request_header __header;
4022     obj_handle_t   handle;
4023 };
4024 struct query_symlink_reply
4025 {
4026     struct reply_header __header;
4027     /* VARARG(target_name,unicode_str); */
4028 };
4029
4030
4031
4032 struct get_object_info_request
4033 {
4034     struct request_header __header;
4035     obj_handle_t   handle;
4036 };
4037 struct get_object_info_reply
4038 {
4039     struct reply_header __header;
4040     unsigned int   access;
4041     unsigned int   ref_count;
4042 };
4043
4044
4045 struct get_token_impersonation_level_request
4046 {
4047     struct request_header __header;
4048     obj_handle_t   handle;
4049 };
4050 struct get_token_impersonation_level_reply
4051 {
4052     struct reply_header __header;
4053     int            impersonation_level;
4054 };
4055
4056
4057 struct allocate_locally_unique_id_request
4058 {
4059     struct request_header __header;
4060 };
4061 struct allocate_locally_unique_id_reply
4062 {
4063     struct reply_header __header;
4064     luid_t         luid;
4065 };
4066
4067
4068
4069 struct create_device_manager_request
4070 {
4071     struct request_header __header;
4072     unsigned int access;
4073     unsigned int attributes;
4074 };
4075 struct create_device_manager_reply
4076 {
4077     struct reply_header __header;
4078     obj_handle_t handle;
4079 };
4080
4081
4082
4083 struct create_device_request
4084 {
4085     struct request_header __header;
4086     unsigned int access;
4087     unsigned int attributes;
4088     obj_handle_t rootdir;
4089     obj_handle_t manager;
4090     void*        user_ptr;
4091     /* VARARG(name,unicode_str); */
4092 };
4093 struct create_device_reply
4094 {
4095     struct reply_header __header;
4096     obj_handle_t handle;
4097 };
4098
4099
4100
4101 struct delete_device_request
4102 {
4103     struct request_header __header;
4104     obj_handle_t handle;
4105 };
4106 struct delete_device_reply
4107 {
4108     struct reply_header __header;
4109 };
4110
4111
4112
4113 struct get_next_device_request_request
4114 {
4115     struct request_header __header;
4116     obj_handle_t manager;
4117     obj_handle_t prev;
4118     unsigned int status;
4119     /* VARARG(prev_data,bytes); */
4120 };
4121 struct get_next_device_request_reply
4122 {
4123     struct reply_header __header;
4124     obj_handle_t next;
4125     ioctl_code_t code;
4126     void*        user_ptr;
4127     data_size_t  in_size;
4128     data_size_t  out_size;
4129     /* VARARG(next_data,bytes); */
4130 };
4131
4132
4133
4134 struct make_process_system_request
4135 {
4136     struct request_header __header;
4137 };
4138 struct make_process_system_reply
4139 {
4140     struct reply_header __header;
4141     obj_handle_t event;
4142 };
4143
4144
4145
4146 struct get_token_statistics_request
4147 {
4148     struct request_header __header;
4149     obj_handle_t   handle;
4150 };
4151 struct get_token_statistics_reply
4152 {
4153     struct reply_header __header;
4154     luid_t         token_id;
4155     luid_t         modified_id;
4156     int            primary;
4157     int            impersonation_level;
4158     int            group_count;
4159     int            privilege_count;
4160 };
4161
4162
4163
4164 struct create_completion_request
4165 {
4166     struct request_header __header;
4167     unsigned int access;
4168     unsigned int attributes;
4169     unsigned int concurrent;
4170     obj_handle_t rootdir;
4171     /* VARARG(filename,string); */
4172 };
4173 struct create_completion_reply
4174 {
4175     struct reply_header __header;
4176     obj_handle_t handle;
4177 };
4178
4179
4180
4181 struct open_completion_request
4182 {
4183     struct request_header __header;
4184     unsigned int access;
4185     unsigned int attributes;
4186     obj_handle_t rootdir;
4187     /* VARARG(filename,string); */
4188 };
4189 struct open_completion_reply
4190 {
4191     struct reply_header __header;
4192     obj_handle_t handle;
4193 };
4194
4195
4196
4197 struct add_completion_request
4198 {
4199     struct request_header __header;
4200     obj_handle_t  handle;
4201     unsigned long ckey;
4202     unsigned long cvalue;
4203     unsigned long information;
4204     unsigned int  status;
4205 };
4206 struct add_completion_reply
4207 {
4208     struct reply_header __header;
4209 };
4210
4211
4212
4213 struct remove_completion_request
4214 {
4215     struct request_header __header;
4216     obj_handle_t handle;
4217 };
4218 struct remove_completion_reply
4219 {
4220     struct reply_header __header;
4221     unsigned long ckey;
4222     unsigned long cvalue;
4223     unsigned long information;
4224     unsigned int  status;
4225 };
4226
4227
4228
4229 struct query_completion_request
4230 {
4231     struct request_header __header;
4232     obj_handle_t  handle;
4233 };
4234 struct query_completion_reply
4235 {
4236     struct reply_header __header;
4237     unsigned int  depth;
4238 };
4239
4240
4241
4242 struct set_completion_info_request
4243 {
4244     struct request_header __header;
4245     obj_handle_t  handle;
4246     obj_handle_t  chandle;
4247     unsigned long ckey;
4248 };
4249 struct set_completion_info_reply
4250 {
4251     struct reply_header __header;
4252 };
4253
4254
4255
4256 struct add_fd_completion_request
4257 {
4258     struct request_header __header;
4259     obj_handle_t   handle;
4260     unsigned long  cvalue;
4261     unsigned int   status;
4262     unsigned long  information;
4263 };
4264 struct add_fd_completion_reply
4265 {
4266     struct reply_header __header;
4267 };
4268
4269
4270
4271 struct get_window_layered_info_request
4272 {
4273     struct request_header __header;
4274     user_handle_t  handle;
4275 };
4276 struct get_window_layered_info_reply
4277 {
4278     struct reply_header __header;
4279     unsigned int   color_key;
4280     unsigned int   alpha;
4281     unsigned int   flags;
4282 };
4283
4284
4285
4286 struct set_window_layered_info_request
4287 {
4288     struct request_header __header;
4289     user_handle_t  handle;
4290     unsigned int   color_key;
4291     unsigned int   alpha;
4292     unsigned int   flags;
4293 };
4294 struct set_window_layered_info_reply
4295 {
4296     struct reply_header __header;
4297 };
4298
4299
4300 enum request
4301 {
4302     REQ_new_process,
4303     REQ_get_new_process_info,
4304     REQ_new_thread,
4305     REQ_get_startup_info,
4306     REQ_init_process_done,
4307     REQ_init_thread,
4308     REQ_terminate_process,
4309     REQ_terminate_thread,
4310     REQ_get_process_info,
4311     REQ_set_process_info,
4312     REQ_get_thread_info,
4313     REQ_set_thread_info,
4314     REQ_get_dll_info,
4315     REQ_suspend_thread,
4316     REQ_resume_thread,
4317     REQ_load_dll,
4318     REQ_unload_dll,
4319     REQ_queue_apc,
4320     REQ_get_apc_result,
4321     REQ_close_handle,
4322     REQ_set_handle_info,
4323     REQ_dup_handle,
4324     REQ_open_process,
4325     REQ_open_thread,
4326     REQ_select,
4327     REQ_create_event,
4328     REQ_event_op,
4329     REQ_open_event,
4330     REQ_create_mutex,
4331     REQ_release_mutex,
4332     REQ_open_mutex,
4333     REQ_create_semaphore,
4334     REQ_release_semaphore,
4335     REQ_open_semaphore,
4336     REQ_create_file,
4337     REQ_open_file_object,
4338     REQ_alloc_file_handle,
4339     REQ_get_handle_fd,
4340     REQ_flush_file,
4341     REQ_lock_file,
4342     REQ_unlock_file,
4343     REQ_create_socket,
4344     REQ_accept_socket,
4345     REQ_set_socket_event,
4346     REQ_get_socket_event,
4347     REQ_enable_socket_event,
4348     REQ_set_socket_deferred,
4349     REQ_alloc_console,
4350     REQ_free_console,
4351     REQ_get_console_renderer_events,
4352     REQ_open_console,
4353     REQ_get_console_wait_event,
4354     REQ_get_console_mode,
4355     REQ_set_console_mode,
4356     REQ_set_console_input_info,
4357     REQ_get_console_input_info,
4358     REQ_append_console_input_history,
4359     REQ_get_console_input_history,
4360     REQ_create_console_output,
4361     REQ_set_console_output_info,
4362     REQ_get_console_output_info,
4363     REQ_write_console_input,
4364     REQ_read_console_input,
4365     REQ_write_console_output,
4366     REQ_fill_console_output,
4367     REQ_read_console_output,
4368     REQ_move_console_output,
4369     REQ_send_console_signal,
4370     REQ_read_directory_changes,
4371     REQ_read_change,
4372     REQ_create_mapping,
4373     REQ_open_mapping,
4374     REQ_get_mapping_info,
4375     REQ_create_snapshot,
4376     REQ_next_process,
4377     REQ_next_thread,
4378     REQ_next_module,
4379     REQ_wait_debug_event,
4380     REQ_queue_exception_event,
4381     REQ_get_exception_status,
4382     REQ_output_debug_string,
4383     REQ_continue_debug_event,
4384     REQ_debug_process,
4385     REQ_debug_break,
4386     REQ_set_debugger_kill_on_exit,
4387     REQ_read_process_memory,
4388     REQ_write_process_memory,
4389     REQ_create_key,
4390     REQ_open_key,
4391     REQ_delete_key,
4392     REQ_flush_key,
4393     REQ_enum_key,
4394     REQ_set_key_value,
4395     REQ_get_key_value,
4396     REQ_enum_key_value,
4397     REQ_delete_key_value,
4398     REQ_load_registry,
4399     REQ_unload_registry,
4400     REQ_save_registry,
4401     REQ_set_registry_notification,
4402     REQ_create_timer,
4403     REQ_open_timer,
4404     REQ_set_timer,
4405     REQ_cancel_timer,
4406     REQ_get_timer_info,
4407     REQ_get_thread_context,
4408     REQ_set_thread_context,
4409     REQ_get_selector_entry,
4410     REQ_add_atom,
4411     REQ_delete_atom,
4412     REQ_find_atom,
4413     REQ_get_atom_information,
4414     REQ_set_atom_information,
4415     REQ_empty_atom_table,
4416     REQ_init_atom_table,
4417     REQ_get_msg_queue,
4418     REQ_set_queue_fd,
4419     REQ_set_queue_mask,
4420     REQ_get_queue_status,
4421     REQ_get_process_idle_event,
4422     REQ_send_message,
4423     REQ_post_quit_message,
4424     REQ_send_hardware_message,
4425     REQ_get_message,
4426     REQ_reply_message,
4427     REQ_accept_hardware_message,
4428     REQ_get_message_reply,
4429     REQ_set_win_timer,
4430     REQ_kill_win_timer,
4431     REQ_is_window_hung,
4432     REQ_get_serial_info,
4433     REQ_set_serial_info,
4434     REQ_register_async,
4435     REQ_cancel_async,
4436     REQ_ioctl,
4437     REQ_get_ioctl_result,
4438     REQ_create_named_pipe,
4439     REQ_get_named_pipe_info,
4440     REQ_create_window,
4441     REQ_destroy_window,
4442     REQ_get_desktop_window,
4443     REQ_set_window_owner,
4444     REQ_get_window_info,
4445     REQ_set_window_info,
4446     REQ_set_parent,
4447     REQ_get_window_parents,
4448     REQ_get_window_children,
4449     REQ_get_window_children_from_point,
4450     REQ_get_window_tree,
4451     REQ_set_window_pos,
4452     REQ_get_window_rectangles,
4453     REQ_get_window_text,
4454     REQ_set_window_text,
4455     REQ_get_windows_offset,
4456     REQ_get_visible_region,
4457     REQ_get_window_region,
4458     REQ_set_window_region,
4459     REQ_get_update_region,
4460     REQ_update_window_zorder,
4461     REQ_redraw_window,
4462     REQ_set_window_property,
4463     REQ_remove_window_property,
4464     REQ_get_window_property,
4465     REQ_get_window_properties,
4466     REQ_create_winstation,
4467     REQ_open_winstation,
4468     REQ_close_winstation,
4469     REQ_get_process_winstation,
4470     REQ_set_process_winstation,
4471     REQ_enum_winstation,
4472     REQ_create_desktop,
4473     REQ_open_desktop,
4474     REQ_close_desktop,
4475     REQ_get_thread_desktop,
4476     REQ_set_thread_desktop,
4477     REQ_enum_desktop,
4478     REQ_set_user_object_info,
4479     REQ_attach_thread_input,
4480     REQ_get_thread_input,
4481     REQ_get_last_input_time,
4482     REQ_get_key_state,
4483     REQ_set_key_state,
4484     REQ_set_foreground_window,
4485     REQ_set_focus_window,
4486     REQ_set_active_window,
4487     REQ_set_capture_window,
4488     REQ_set_caret_window,
4489     REQ_set_caret_info,
4490     REQ_set_hook,
4491     REQ_remove_hook,
4492     REQ_start_hook_chain,
4493     REQ_finish_hook_chain,
4494     REQ_get_hook_info,
4495     REQ_create_class,
4496     REQ_destroy_class,
4497     REQ_set_class_info,
4498     REQ_set_clipboard_info,
4499     REQ_open_token,
4500     REQ_set_global_windows,
4501     REQ_adjust_token_privileges,
4502     REQ_get_token_privileges,
4503     REQ_check_token_privileges,
4504     REQ_duplicate_token,
4505     REQ_access_check,
4506     REQ_get_token_user,
4507     REQ_get_token_groups,
4508     REQ_set_security_object,
4509     REQ_get_security_object,
4510     REQ_create_mailslot,
4511     REQ_set_mailslot_info,
4512     REQ_create_directory,
4513     REQ_open_directory,
4514     REQ_get_directory_entry,
4515     REQ_create_symlink,
4516     REQ_open_symlink,
4517     REQ_query_symlink,
4518     REQ_get_object_info,
4519     REQ_get_token_impersonation_level,
4520     REQ_allocate_locally_unique_id,
4521     REQ_create_device_manager,
4522     REQ_create_device,
4523     REQ_delete_device,
4524     REQ_get_next_device_request,
4525     REQ_make_process_system,
4526     REQ_get_token_statistics,
4527     REQ_create_completion,
4528     REQ_open_completion,
4529     REQ_add_completion,
4530     REQ_remove_completion,
4531     REQ_query_completion,
4532     REQ_set_completion_info,
4533     REQ_add_fd_completion,
4534     REQ_get_window_layered_info,
4535     REQ_set_window_layered_info,
4536     REQ_NB_REQUESTS
4537 };
4538
4539 union generic_request
4540 {
4541     struct request_max_size max_size;
4542     struct request_header request_header;
4543     struct new_process_request new_process_request;
4544     struct get_new_process_info_request get_new_process_info_request;
4545     struct new_thread_request new_thread_request;
4546     struct get_startup_info_request get_startup_info_request;
4547     struct init_process_done_request init_process_done_request;
4548     struct init_thread_request init_thread_request;
4549     struct terminate_process_request terminate_process_request;
4550     struct terminate_thread_request terminate_thread_request;
4551     struct get_process_info_request get_process_info_request;
4552     struct set_process_info_request set_process_info_request;
4553     struct get_thread_info_request get_thread_info_request;
4554     struct set_thread_info_request set_thread_info_request;
4555     struct get_dll_info_request get_dll_info_request;
4556     struct suspend_thread_request suspend_thread_request;
4557     struct resume_thread_request resume_thread_request;
4558     struct load_dll_request load_dll_request;
4559     struct unload_dll_request unload_dll_request;
4560     struct queue_apc_request queue_apc_request;
4561     struct get_apc_result_request get_apc_result_request;
4562     struct close_handle_request close_handle_request;
4563     struct set_handle_info_request set_handle_info_request;
4564     struct dup_handle_request dup_handle_request;
4565     struct open_process_request open_process_request;
4566     struct open_thread_request open_thread_request;
4567     struct select_request select_request;
4568     struct create_event_request create_event_request;
4569     struct event_op_request event_op_request;
4570     struct open_event_request open_event_request;
4571     struct create_mutex_request create_mutex_request;
4572     struct release_mutex_request release_mutex_request;
4573     struct open_mutex_request open_mutex_request;
4574     struct create_semaphore_request create_semaphore_request;
4575     struct release_semaphore_request release_semaphore_request;
4576     struct open_semaphore_request open_semaphore_request;
4577     struct create_file_request create_file_request;
4578     struct open_file_object_request open_file_object_request;
4579     struct alloc_file_handle_request alloc_file_handle_request;
4580     struct get_handle_fd_request get_handle_fd_request;
4581     struct flush_file_request flush_file_request;
4582     struct lock_file_request lock_file_request;
4583     struct unlock_file_request unlock_file_request;
4584     struct create_socket_request create_socket_request;
4585     struct accept_socket_request accept_socket_request;
4586     struct set_socket_event_request set_socket_event_request;
4587     struct get_socket_event_request get_socket_event_request;
4588     struct enable_socket_event_request enable_socket_event_request;
4589     struct set_socket_deferred_request set_socket_deferred_request;
4590     struct alloc_console_request alloc_console_request;
4591     struct free_console_request free_console_request;
4592     struct get_console_renderer_events_request get_console_renderer_events_request;
4593     struct open_console_request open_console_request;
4594     struct get_console_wait_event_request get_console_wait_event_request;
4595     struct get_console_mode_request get_console_mode_request;
4596     struct set_console_mode_request set_console_mode_request;
4597     struct set_console_input_info_request set_console_input_info_request;
4598     struct get_console_input_info_request get_console_input_info_request;
4599     struct append_console_input_history_request append_console_input_history_request;
4600     struct get_console_input_history_request get_console_input_history_request;
4601     struct create_console_output_request create_console_output_request;
4602     struct set_console_output_info_request set_console_output_info_request;
4603     struct get_console_output_info_request get_console_output_info_request;
4604     struct write_console_input_request write_console_input_request;
4605     struct read_console_input_request read_console_input_request;
4606     struct write_console_output_request write_console_output_request;
4607     struct fill_console_output_request fill_console_output_request;
4608     struct read_console_output_request read_console_output_request;
4609     struct move_console_output_request move_console_output_request;
4610     struct send_console_signal_request send_console_signal_request;
4611     struct read_directory_changes_request read_directory_changes_request;
4612     struct read_change_request read_change_request;
4613     struct create_mapping_request create_mapping_request;
4614     struct open_mapping_request open_mapping_request;
4615     struct get_mapping_info_request get_mapping_info_request;
4616     struct create_snapshot_request create_snapshot_request;
4617     struct next_process_request next_process_request;
4618     struct next_thread_request next_thread_request;
4619     struct next_module_request next_module_request;
4620     struct wait_debug_event_request wait_debug_event_request;
4621     struct queue_exception_event_request queue_exception_event_request;
4622     struct get_exception_status_request get_exception_status_request;
4623     struct output_debug_string_request output_debug_string_request;
4624     struct continue_debug_event_request continue_debug_event_request;
4625     struct debug_process_request debug_process_request;
4626     struct debug_break_request debug_break_request;
4627     struct set_debugger_kill_on_exit_request set_debugger_kill_on_exit_request;
4628     struct read_process_memory_request read_process_memory_request;
4629     struct write_process_memory_request write_process_memory_request;
4630     struct create_key_request create_key_request;
4631     struct open_key_request open_key_request;
4632     struct delete_key_request delete_key_request;
4633     struct flush_key_request flush_key_request;
4634     struct enum_key_request enum_key_request;
4635     struct set_key_value_request set_key_value_request;
4636     struct get_key_value_request get_key_value_request;
4637     struct enum_key_value_request enum_key_value_request;
4638     struct delete_key_value_request delete_key_value_request;
4639     struct load_registry_request load_registry_request;
4640     struct unload_registry_request unload_registry_request;
4641     struct save_registry_request save_registry_request;
4642     struct set_registry_notification_request set_registry_notification_request;
4643     struct create_timer_request create_timer_request;
4644     struct open_timer_request open_timer_request;
4645     struct set_timer_request set_timer_request;
4646     struct cancel_timer_request cancel_timer_request;
4647     struct get_timer_info_request get_timer_info_request;
4648     struct get_thread_context_request get_thread_context_request;
4649     struct set_thread_context_request set_thread_context_request;
4650     struct get_selector_entry_request get_selector_entry_request;
4651     struct add_atom_request add_atom_request;
4652     struct delete_atom_request delete_atom_request;
4653     struct find_atom_request find_atom_request;
4654     struct get_atom_information_request get_atom_information_request;
4655     struct set_atom_information_request set_atom_information_request;
4656     struct empty_atom_table_request empty_atom_table_request;
4657     struct init_atom_table_request init_atom_table_request;
4658     struct get_msg_queue_request get_msg_queue_request;
4659     struct set_queue_fd_request set_queue_fd_request;
4660     struct set_queue_mask_request set_queue_mask_request;
4661     struct get_queue_status_request get_queue_status_request;
4662     struct get_process_idle_event_request get_process_idle_event_request;
4663     struct send_message_request send_message_request;
4664     struct post_quit_message_request post_quit_message_request;
4665     struct send_hardware_message_request send_hardware_message_request;
4666     struct get_message_request get_message_request;
4667     struct reply_message_request reply_message_request;
4668     struct accept_hardware_message_request accept_hardware_message_request;
4669     struct get_message_reply_request get_message_reply_request;
4670     struct set_win_timer_request set_win_timer_request;
4671     struct kill_win_timer_request kill_win_timer_request;
4672     struct is_window_hung_request is_window_hung_request;
4673     struct get_serial_info_request get_serial_info_request;
4674     struct set_serial_info_request set_serial_info_request;
4675     struct register_async_request register_async_request;
4676     struct cancel_async_request cancel_async_request;
4677     struct ioctl_request ioctl_request;
4678     struct get_ioctl_result_request get_ioctl_result_request;
4679     struct create_named_pipe_request create_named_pipe_request;
4680     struct get_named_pipe_info_request get_named_pipe_info_request;
4681     struct create_window_request create_window_request;
4682     struct destroy_window_request destroy_window_request;
4683     struct get_desktop_window_request get_desktop_window_request;
4684     struct set_window_owner_request set_window_owner_request;
4685     struct get_window_info_request get_window_info_request;
4686     struct set_window_info_request set_window_info_request;
4687     struct set_parent_request set_parent_request;
4688     struct get_window_parents_request get_window_parents_request;
4689     struct get_window_children_request get_window_children_request;
4690     struct get_window_children_from_point_request get_window_children_from_point_request;
4691     struct get_window_tree_request get_window_tree_request;
4692     struct set_window_pos_request set_window_pos_request;
4693     struct get_window_rectangles_request get_window_rectangles_request;
4694     struct get_window_text_request get_window_text_request;
4695     struct set_window_text_request set_window_text_request;
4696     struct get_windows_offset_request get_windows_offset_request;
4697     struct get_visible_region_request get_visible_region_request;
4698     struct get_window_region_request get_window_region_request;
4699     struct set_window_region_request set_window_region_request;
4700     struct get_update_region_request get_update_region_request;
4701     struct update_window_zorder_request update_window_zorder_request;
4702     struct redraw_window_request redraw_window_request;
4703     struct set_window_property_request set_window_property_request;
4704     struct remove_window_property_request remove_window_property_request;
4705     struct get_window_property_request get_window_property_request;
4706     struct get_window_properties_request get_window_properties_request;
4707     struct create_winstation_request create_winstation_request;
4708     struct open_winstation_request open_winstation_request;
4709     struct close_winstation_request close_winstation_request;
4710     struct get_process_winstation_request get_process_winstation_request;
4711     struct set_process_winstation_request set_process_winstation_request;
4712     struct enum_winstation_request enum_winstation_request;
4713     struct create_desktop_request create_desktop_request;
4714     struct open_desktop_request open_desktop_request;
4715     struct close_desktop_request close_desktop_request;
4716     struct get_thread_desktop_request get_thread_desktop_request;
4717     struct set_thread_desktop_request set_thread_desktop_request;
4718     struct enum_desktop_request enum_desktop_request;
4719     struct set_user_object_info_request set_user_object_info_request;
4720     struct attach_thread_input_request attach_thread_input_request;
4721     struct get_thread_input_request get_thread_input_request;
4722     struct get_last_input_time_request get_last_input_time_request;
4723     struct get_key_state_request get_key_state_request;
4724     struct set_key_state_request set_key_state_request;
4725     struct set_foreground_window_request set_foreground_window_request;
4726     struct set_focus_window_request set_focus_window_request;
4727     struct set_active_window_request set_active_window_request;
4728     struct set_capture_window_request set_capture_window_request;
4729     struct set_caret_window_request set_caret_window_request;
4730     struct set_caret_info_request set_caret_info_request;
4731     struct set_hook_request set_hook_request;
4732     struct remove_hook_request remove_hook_request;
4733     struct start_hook_chain_request start_hook_chain_request;
4734     struct finish_hook_chain_request finish_hook_chain_request;
4735     struct get_hook_info_request get_hook_info_request;
4736     struct create_class_request create_class_request;
4737     struct destroy_class_request destroy_class_request;
4738     struct set_class_info_request set_class_info_request;
4739     struct set_clipboard_info_request set_clipboard_info_request;
4740     struct open_token_request open_token_request;
4741     struct set_global_windows_request set_global_windows_request;
4742     struct adjust_token_privileges_request adjust_token_privileges_request;
4743     struct get_token_privileges_request get_token_privileges_request;
4744     struct check_token_privileges_request check_token_privileges_request;
4745     struct duplicate_token_request duplicate_token_request;
4746     struct access_check_request access_check_request;
4747     struct get_token_user_request get_token_user_request;
4748     struct get_token_groups_request get_token_groups_request;
4749     struct set_security_object_request set_security_object_request;
4750     struct get_security_object_request get_security_object_request;
4751     struct create_mailslot_request create_mailslot_request;
4752     struct set_mailslot_info_request set_mailslot_info_request;
4753     struct create_directory_request create_directory_request;
4754     struct open_directory_request open_directory_request;
4755     struct get_directory_entry_request get_directory_entry_request;
4756     struct create_symlink_request create_symlink_request;
4757     struct open_symlink_request open_symlink_request;
4758     struct query_symlink_request query_symlink_request;
4759     struct get_object_info_request get_object_info_request;
4760     struct get_token_impersonation_level_request get_token_impersonation_level_request;
4761     struct allocate_locally_unique_id_request allocate_locally_unique_id_request;
4762     struct create_device_manager_request create_device_manager_request;
4763     struct create_device_request create_device_request;
4764     struct delete_device_request delete_device_request;
4765     struct get_next_device_request_request get_next_device_request_request;
4766     struct make_process_system_request make_process_system_request;
4767     struct get_token_statistics_request get_token_statistics_request;
4768     struct create_completion_request create_completion_request;
4769     struct open_completion_request open_completion_request;
4770     struct add_completion_request add_completion_request;
4771     struct remove_completion_request remove_completion_request;
4772     struct query_completion_request query_completion_request;
4773     struct set_completion_info_request set_completion_info_request;
4774     struct add_fd_completion_request add_fd_completion_request;
4775     struct get_window_layered_info_request get_window_layered_info_request;
4776     struct set_window_layered_info_request set_window_layered_info_request;
4777 };
4778 union generic_reply
4779 {
4780     struct request_max_size max_size;
4781     struct reply_header reply_header;
4782     struct new_process_reply new_process_reply;
4783     struct get_new_process_info_reply get_new_process_info_reply;
4784     struct new_thread_reply new_thread_reply;
4785     struct get_startup_info_reply get_startup_info_reply;
4786     struct init_process_done_reply init_process_done_reply;
4787     struct init_thread_reply init_thread_reply;
4788     struct terminate_process_reply terminate_process_reply;
4789     struct terminate_thread_reply terminate_thread_reply;
4790     struct get_process_info_reply get_process_info_reply;
4791     struct set_process_info_reply set_process_info_reply;
4792     struct get_thread_info_reply get_thread_info_reply;
4793     struct set_thread_info_reply set_thread_info_reply;
4794     struct get_dll_info_reply get_dll_info_reply;
4795     struct suspend_thread_reply suspend_thread_reply;
4796     struct resume_thread_reply resume_thread_reply;
4797     struct load_dll_reply load_dll_reply;
4798     struct unload_dll_reply unload_dll_reply;
4799     struct queue_apc_reply queue_apc_reply;
4800     struct get_apc_result_reply get_apc_result_reply;
4801     struct close_handle_reply close_handle_reply;
4802     struct set_handle_info_reply set_handle_info_reply;
4803     struct dup_handle_reply dup_handle_reply;
4804     struct open_process_reply open_process_reply;
4805     struct open_thread_reply open_thread_reply;
4806     struct select_reply select_reply;
4807     struct create_event_reply create_event_reply;
4808     struct event_op_reply event_op_reply;
4809     struct open_event_reply open_event_reply;
4810     struct create_mutex_reply create_mutex_reply;
4811     struct release_mutex_reply release_mutex_reply;
4812     struct open_mutex_reply open_mutex_reply;
4813     struct create_semaphore_reply create_semaphore_reply;
4814     struct release_semaphore_reply release_semaphore_reply;
4815     struct open_semaphore_reply open_semaphore_reply;
4816     struct create_file_reply create_file_reply;
4817     struct open_file_object_reply open_file_object_reply;
4818     struct alloc_file_handle_reply alloc_file_handle_reply;
4819     struct get_handle_fd_reply get_handle_fd_reply;
4820     struct flush_file_reply flush_file_reply;
4821     struct lock_file_reply lock_file_reply;
4822     struct unlock_file_reply unlock_file_reply;
4823     struct create_socket_reply create_socket_reply;
4824     struct accept_socket_reply accept_socket_reply;
4825     struct set_socket_event_reply set_socket_event_reply;
4826     struct get_socket_event_reply get_socket_event_reply;
4827     struct enable_socket_event_reply enable_socket_event_reply;
4828     struct set_socket_deferred_reply set_socket_deferred_reply;
4829     struct alloc_console_reply alloc_console_reply;
4830     struct free_console_reply free_console_reply;
4831     struct get_console_renderer_events_reply get_console_renderer_events_reply;
4832     struct open_console_reply open_console_reply;
4833     struct get_console_wait_event_reply get_console_wait_event_reply;
4834     struct get_console_mode_reply get_console_mode_reply;
4835     struct set_console_mode_reply set_console_mode_reply;
4836     struct set_console_input_info_reply set_console_input_info_reply;
4837     struct get_console_input_info_reply get_console_input_info_reply;
4838     struct append_console_input_history_reply append_console_input_history_reply;
4839     struct get_console_input_history_reply get_console_input_history_reply;
4840     struct create_console_output_reply create_console_output_reply;
4841     struct set_console_output_info_reply set_console_output_info_reply;
4842     struct get_console_output_info_reply get_console_output_info_reply;
4843     struct write_console_input_reply write_console_input_reply;
4844     struct read_console_input_reply read_console_input_reply;
4845     struct write_console_output_reply write_console_output_reply;
4846     struct fill_console_output_reply fill_console_output_reply;
4847     struct read_console_output_reply read_console_output_reply;
4848     struct move_console_output_reply move_console_output_reply;
4849     struct send_console_signal_reply send_console_signal_reply;
4850     struct read_directory_changes_reply read_directory_changes_reply;
4851     struct read_change_reply read_change_reply;
4852     struct create_mapping_reply create_mapping_reply;
4853     struct open_mapping_reply open_mapping_reply;
4854     struct get_mapping_info_reply get_mapping_info_reply;
4855     struct create_snapshot_reply create_snapshot_reply;
4856     struct next_process_reply next_process_reply;
4857     struct next_thread_reply next_thread_reply;
4858     struct next_module_reply next_module_reply;
4859     struct wait_debug_event_reply wait_debug_event_reply;
4860     struct queue_exception_event_reply queue_exception_event_reply;
4861     struct get_exception_status_reply get_exception_status_reply;
4862     struct output_debug_string_reply output_debug_string_reply;
4863     struct continue_debug_event_reply continue_debug_event_reply;
4864     struct debug_process_reply debug_process_reply;
4865     struct debug_break_reply debug_break_reply;
4866     struct set_debugger_kill_on_exit_reply set_debugger_kill_on_exit_reply;
4867     struct read_process_memory_reply read_process_memory_reply;
4868     struct write_process_memory_reply write_process_memory_reply;
4869     struct create_key_reply create_key_reply;
4870     struct open_key_reply open_key_reply;
4871     struct delete_key_reply delete_key_reply;
4872     struct flush_key_reply flush_key_reply;
4873     struct enum_key_reply enum_key_reply;
4874     struct set_key_value_reply set_key_value_reply;
4875     struct get_key_value_reply get_key_value_reply;
4876     struct enum_key_value_reply enum_key_value_reply;
4877     struct delete_key_value_reply delete_key_value_reply;
4878     struct load_registry_reply load_registry_reply;
4879     struct unload_registry_reply unload_registry_reply;
4880     struct save_registry_reply save_registry_reply;
4881     struct set_registry_notification_reply set_registry_notification_reply;
4882     struct create_timer_reply create_timer_reply;
4883     struct open_timer_reply open_timer_reply;
4884     struct set_timer_reply set_timer_reply;
4885     struct cancel_timer_reply cancel_timer_reply;
4886     struct get_timer_info_reply get_timer_info_reply;
4887     struct get_thread_context_reply get_thread_context_reply;
4888     struct set_thread_context_reply set_thread_context_reply;
4889     struct get_selector_entry_reply get_selector_entry_reply;
4890     struct add_atom_reply add_atom_reply;
4891     struct delete_atom_reply delete_atom_reply;
4892     struct find_atom_reply find_atom_reply;
4893     struct get_atom_information_reply get_atom_information_reply;
4894     struct set_atom_information_reply set_atom_information_reply;
4895     struct empty_atom_table_reply empty_atom_table_reply;
4896     struct init_atom_table_reply init_atom_table_reply;
4897     struct get_msg_queue_reply get_msg_queue_reply;
4898     struct set_queue_fd_reply set_queue_fd_reply;
4899     struct set_queue_mask_reply set_queue_mask_reply;
4900     struct get_queue_status_reply get_queue_status_reply;
4901     struct get_process_idle_event_reply get_process_idle_event_reply;
4902     struct send_message_reply send_message_reply;
4903     struct post_quit_message_reply post_quit_message_reply;
4904     struct send_hardware_message_reply send_hardware_message_reply;
4905     struct get_message_reply get_message_reply;
4906     struct reply_message_reply reply_message_reply;
4907     struct accept_hardware_message_reply accept_hardware_message_reply;
4908     struct get_message_reply_reply get_message_reply_reply;
4909     struct set_win_timer_reply set_win_timer_reply;
4910     struct kill_win_timer_reply kill_win_timer_reply;
4911     struct is_window_hung_reply is_window_hung_reply;
4912     struct get_serial_info_reply get_serial_info_reply;
4913     struct set_serial_info_reply set_serial_info_reply;
4914     struct register_async_reply register_async_reply;
4915     struct cancel_async_reply cancel_async_reply;
4916     struct ioctl_reply ioctl_reply;
4917     struct get_ioctl_result_reply get_ioctl_result_reply;
4918     struct create_named_pipe_reply create_named_pipe_reply;
4919     struct get_named_pipe_info_reply get_named_pipe_info_reply;
4920     struct create_window_reply create_window_reply;
4921     struct destroy_window_reply destroy_window_reply;
4922     struct get_desktop_window_reply get_desktop_window_reply;
4923     struct set_window_owner_reply set_window_owner_reply;
4924     struct get_window_info_reply get_window_info_reply;
4925     struct set_window_info_reply set_window_info_reply;
4926     struct set_parent_reply set_parent_reply;
4927     struct get_window_parents_reply get_window_parents_reply;
4928     struct get_window_children_reply get_window_children_reply;
4929     struct get_window_children_from_point_reply get_window_children_from_point_reply;
4930     struct get_window_tree_reply get_window_tree_reply;
4931     struct set_window_pos_reply set_window_pos_reply;
4932     struct get_window_rectangles_reply get_window_rectangles_reply;
4933     struct get_window_text_reply get_window_text_reply;
4934     struct set_window_text_reply set_window_text_reply;
4935     struct get_windows_offset_reply get_windows_offset_reply;
4936     struct get_visible_region_reply get_visible_region_reply;
4937     struct get_window_region_reply get_window_region_reply;
4938     struct set_window_region_reply set_window_region_reply;
4939     struct get_update_region_reply get_update_region_reply;
4940     struct update_window_zorder_reply update_window_zorder_reply;
4941     struct redraw_window_reply redraw_window_reply;
4942     struct set_window_property_reply set_window_property_reply;
4943     struct remove_window_property_reply remove_window_property_reply;
4944     struct get_window_property_reply get_window_property_reply;
4945     struct get_window_properties_reply get_window_properties_reply;
4946     struct create_winstation_reply create_winstation_reply;
4947     struct open_winstation_reply open_winstation_reply;
4948     struct close_winstation_reply close_winstation_reply;
4949     struct get_process_winstation_reply get_process_winstation_reply;
4950     struct set_process_winstation_reply set_process_winstation_reply;
4951     struct enum_winstation_reply enum_winstation_reply;
4952     struct create_desktop_reply create_desktop_reply;
4953     struct open_desktop_reply open_desktop_reply;
4954     struct close_desktop_reply close_desktop_reply;
4955     struct get_thread_desktop_reply get_thread_desktop_reply;
4956     struct set_thread_desktop_reply set_thread_desktop_reply;
4957     struct enum_desktop_reply enum_desktop_reply;
4958     struct set_user_object_info_reply set_user_object_info_reply;
4959     struct attach_thread_input_reply attach_thread_input_reply;
4960     struct get_thread_input_reply get_thread_input_reply;
4961     struct get_last_input_time_reply get_last_input_time_reply;
4962     struct get_key_state_reply get_key_state_reply;
4963     struct set_key_state_reply set_key_state_reply;
4964     struct set_foreground_window_reply set_foreground_window_reply;
4965     struct set_focus_window_reply set_focus_window_reply;
4966     struct set_active_window_reply set_active_window_reply;
4967     struct set_capture_window_reply set_capture_window_reply;
4968     struct set_caret_window_reply set_caret_window_reply;
4969     struct set_caret_info_reply set_caret_info_reply;
4970     struct set_hook_reply set_hook_reply;
4971     struct remove_hook_reply remove_hook_reply;
4972     struct start_hook_chain_reply start_hook_chain_reply;
4973     struct finish_hook_chain_reply finish_hook_chain_reply;
4974     struct get_hook_info_reply get_hook_info_reply;
4975     struct create_class_reply create_class_reply;
4976     struct destroy_class_reply destroy_class_reply;
4977     struct set_class_info_reply set_class_info_reply;
4978     struct set_clipboard_info_reply set_clipboard_info_reply;
4979     struct open_token_reply open_token_reply;
4980     struct set_global_windows_reply set_global_windows_reply;
4981     struct adjust_token_privileges_reply adjust_token_privileges_reply;
4982     struct get_token_privileges_reply get_token_privileges_reply;
4983     struct check_token_privileges_reply check_token_privileges_reply;
4984     struct duplicate_token_reply duplicate_token_reply;
4985     struct access_check_reply access_check_reply;
4986     struct get_token_user_reply get_token_user_reply;
4987     struct get_token_groups_reply get_token_groups_reply;
4988     struct set_security_object_reply set_security_object_reply;
4989     struct get_security_object_reply get_security_object_reply;
4990     struct create_mailslot_reply create_mailslot_reply;
4991     struct set_mailslot_info_reply set_mailslot_info_reply;
4992     struct create_directory_reply create_directory_reply;
4993     struct open_directory_reply open_directory_reply;
4994     struct get_directory_entry_reply get_directory_entry_reply;
4995     struct create_symlink_reply create_symlink_reply;
4996     struct open_symlink_reply open_symlink_reply;
4997     struct query_symlink_reply query_symlink_reply;
4998     struct get_object_info_reply get_object_info_reply;
4999     struct get_token_impersonation_level_reply get_token_impersonation_level_reply;
5000     struct allocate_locally_unique_id_reply allocate_locally_unique_id_reply;
5001     struct create_device_manager_reply create_device_manager_reply;
5002     struct create_device_reply create_device_reply;
5003     struct delete_device_reply delete_device_reply;
5004     struct get_next_device_request_reply get_next_device_request_reply;
5005     struct make_process_system_reply make_process_system_reply;
5006     struct get_token_statistics_reply get_token_statistics_reply;
5007     struct create_completion_reply create_completion_reply;
5008     struct open_completion_reply open_completion_reply;
5009     struct add_completion_reply add_completion_reply;
5010     struct remove_completion_reply remove_completion_reply;
5011     struct query_completion_reply query_completion_reply;
5012     struct set_completion_info_reply set_completion_info_reply;
5013     struct add_fd_completion_reply add_fd_completion_reply;
5014     struct get_window_layered_info_reply get_window_layered_info_reply;
5015     struct set_window_layered_info_reply set_window_layered_info_reply;
5016 };
5017
5018 #define SERVER_PROTOCOL_VERSION 342
5019
5020 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */