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