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