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