gdi32: Add sanity checks for brush hatch styles.
[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     /* VARARG(keystate,bytes); */
2800     char __pad_12[4];
2801 };
2802 #define SEND_HWMSG_INJECTED    0x01
2803
2804
2805
2806 struct get_message_request
2807 {
2808     struct request_header __header;
2809     unsigned int    flags;
2810     user_handle_t   get_win;
2811     unsigned int    get_first;
2812     unsigned int    get_last;
2813     unsigned int    hw_id;
2814     unsigned int    wake_mask;
2815     unsigned int    changed_mask;
2816 };
2817 struct get_message_reply
2818 {
2819     struct reply_header __header;
2820     user_handle_t   win;
2821     unsigned int    msg;
2822     lparam_t        wparam;
2823     lparam_t        lparam;
2824     int             type;
2825     unsigned int    time;
2826     unsigned int    active_hooks;
2827     data_size_t     total;
2828     /* VARARG(data,message_data); */
2829 };
2830
2831
2832
2833 struct reply_message_request
2834 {
2835     struct request_header __header;
2836     int             remove;
2837     lparam_t        result;
2838     /* VARARG(data,bytes); */
2839 };
2840 struct reply_message_reply
2841 {
2842     struct reply_header __header;
2843 };
2844
2845
2846
2847 struct accept_hardware_message_request
2848 {
2849     struct request_header __header;
2850     unsigned int    hw_id;
2851     int             remove;
2852     user_handle_t   new_win;
2853 };
2854 struct accept_hardware_message_reply
2855 {
2856     struct reply_header __header;
2857 };
2858
2859
2860
2861 struct get_message_reply_request
2862 {
2863     struct request_header __header;
2864     int             cancel;
2865 };
2866 struct get_message_reply_reply
2867 {
2868     struct reply_header __header;
2869     lparam_t        result;
2870     /* VARARG(data,bytes); */
2871 };
2872
2873
2874
2875 struct set_win_timer_request
2876 {
2877     struct request_header __header;
2878     user_handle_t   win;
2879     unsigned int    msg;
2880     unsigned int    rate;
2881     lparam_t        id;
2882     lparam_t        lparam;
2883 };
2884 struct set_win_timer_reply
2885 {
2886     struct reply_header __header;
2887     lparam_t        id;
2888 };
2889
2890
2891
2892 struct kill_win_timer_request
2893 {
2894     struct request_header __header;
2895     user_handle_t   win;
2896     lparam_t        id;
2897     unsigned int    msg;
2898     char __pad_28[4];
2899 };
2900 struct kill_win_timer_reply
2901 {
2902     struct reply_header __header;
2903 };
2904
2905
2906
2907 struct is_window_hung_request
2908 {
2909     struct request_header __header;
2910     user_handle_t   win;
2911 };
2912 struct is_window_hung_reply
2913 {
2914     struct reply_header __header;
2915     int is_hung;
2916     char __pad_12[4];
2917 };
2918
2919
2920
2921 struct get_serial_info_request
2922 {
2923     struct request_header __header;
2924     obj_handle_t handle;
2925 };
2926 struct get_serial_info_reply
2927 {
2928     struct reply_header __header;
2929     unsigned int readinterval;
2930     unsigned int readconst;
2931     unsigned int readmult;
2932     unsigned int writeconst;
2933     unsigned int writemult;
2934     unsigned int eventmask;
2935 };
2936
2937
2938
2939 struct set_serial_info_request
2940 {
2941     struct request_header __header;
2942     obj_handle_t handle;
2943     int          flags;
2944     unsigned int readinterval;
2945     unsigned int readconst;
2946     unsigned int readmult;
2947     unsigned int writeconst;
2948     unsigned int writemult;
2949     unsigned int eventmask;
2950     char __pad_44[4];
2951 };
2952 struct set_serial_info_reply
2953 {
2954     struct reply_header __header;
2955 };
2956 #define SERIALINFO_SET_TIMEOUTS  0x01
2957 #define SERIALINFO_SET_MASK      0x02
2958
2959
2960
2961 struct register_async_request
2962 {
2963     struct request_header __header;
2964     int          type;
2965     async_data_t async;
2966     int          count;
2967     char __pad_60[4];
2968 };
2969 struct register_async_reply
2970 {
2971     struct reply_header __header;
2972 };
2973 #define ASYNC_TYPE_READ  0x01
2974 #define ASYNC_TYPE_WRITE 0x02
2975 #define ASYNC_TYPE_WAIT  0x03
2976
2977
2978
2979 struct cancel_async_request
2980 {
2981     struct request_header __header;
2982     obj_handle_t handle;
2983     client_ptr_t iosb;
2984     int          only_thread;
2985     char __pad_28[4];
2986 };
2987 struct cancel_async_reply
2988 {
2989     struct reply_header __header;
2990 };
2991
2992
2993
2994 struct ioctl_request
2995 {
2996     struct request_header __header;
2997     ioctl_code_t   code;
2998     async_data_t   async;
2999     int            blocking;
3000     /* VARARG(in_data,bytes); */
3001     char __pad_60[4];
3002 };
3003 struct ioctl_reply
3004 {
3005     struct reply_header __header;
3006     obj_handle_t   wait;
3007     unsigned int   options;
3008     /* VARARG(out_data,bytes); */
3009 };
3010
3011
3012
3013 struct get_ioctl_result_request
3014 {
3015     struct request_header __header;
3016     obj_handle_t   handle;
3017     client_ptr_t   user_arg;
3018 };
3019 struct get_ioctl_result_reply
3020 {
3021     struct reply_header __header;
3022     /* VARARG(out_data,bytes); */
3023 };
3024
3025
3026
3027 struct create_named_pipe_request
3028 {
3029     struct request_header __header;
3030     unsigned int   access;
3031     unsigned int   attributes;
3032     obj_handle_t   rootdir;
3033     unsigned int   options;
3034     unsigned int   sharing;
3035     unsigned int   maxinstances;
3036     unsigned int   outsize;
3037     unsigned int   insize;
3038     char __pad_44[4];
3039     timeout_t      timeout;
3040     unsigned int   flags;
3041     /* VARARG(name,unicode_str); */
3042     char __pad_60[4];
3043 };
3044 struct create_named_pipe_reply
3045 {
3046     struct reply_header __header;
3047     obj_handle_t   handle;
3048     char __pad_12[4];
3049 };
3050
3051
3052 #define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
3053 #define NAMED_PIPE_MESSAGE_STREAM_READ  0x0002
3054 #define NAMED_PIPE_NONBLOCKING_MODE     0x0004
3055 #define NAMED_PIPE_SERVER_END           0x8000
3056
3057
3058 struct get_named_pipe_info_request
3059 {
3060     struct request_header __header;
3061     obj_handle_t   handle;
3062 };
3063 struct get_named_pipe_info_reply
3064 {
3065     struct reply_header __header;
3066     unsigned int   flags;
3067     unsigned int   sharing;
3068     unsigned int   maxinstances;
3069     unsigned int   instances;
3070     unsigned int   outsize;
3071     unsigned int   insize;
3072 };
3073
3074
3075
3076 struct create_window_request
3077 {
3078     struct request_header __header;
3079     user_handle_t  parent;
3080     user_handle_t  owner;
3081     atom_t         atom;
3082     mod_handle_t   instance;
3083     /* VARARG(class,unicode_str); */
3084 };
3085 struct create_window_reply
3086 {
3087     struct reply_header __header;
3088     user_handle_t  handle;
3089     user_handle_t  parent;
3090     user_handle_t  owner;
3091     int            extra;
3092     client_ptr_t   class_ptr;
3093 };
3094
3095
3096
3097 struct destroy_window_request
3098 {
3099     struct request_header __header;
3100     user_handle_t  handle;
3101 };
3102 struct destroy_window_reply
3103 {
3104     struct reply_header __header;
3105 };
3106
3107
3108
3109 struct get_desktop_window_request
3110 {
3111     struct request_header __header;
3112     int            force;
3113 };
3114 struct get_desktop_window_reply
3115 {
3116     struct reply_header __header;
3117     user_handle_t  top_window;
3118     user_handle_t  msg_window;
3119 };
3120
3121
3122
3123 struct set_window_owner_request
3124 {
3125     struct request_header __header;
3126     user_handle_t  handle;
3127     user_handle_t  owner;
3128     char __pad_20[4];
3129 };
3130 struct set_window_owner_reply
3131 {
3132     struct reply_header __header;
3133     user_handle_t  full_owner;
3134     user_handle_t  prev_owner;
3135 };
3136
3137
3138
3139 struct get_window_info_request
3140 {
3141     struct request_header __header;
3142     user_handle_t  handle;
3143 };
3144 struct get_window_info_reply
3145 {
3146     struct reply_header __header;
3147     user_handle_t  full_handle;
3148     user_handle_t  last_active;
3149     process_id_t   pid;
3150     thread_id_t    tid;
3151     atom_t         atom;
3152     int            is_unicode;
3153 };
3154
3155
3156
3157 struct set_window_info_request
3158 {
3159     struct request_header __header;
3160     unsigned short flags;
3161     short int      is_unicode;
3162     user_handle_t  handle;
3163     unsigned int   style;
3164     unsigned int   ex_style;
3165     unsigned int   id;
3166     mod_handle_t   instance;
3167     lparam_t       user_data;
3168     int            extra_offset;
3169     data_size_t    extra_size;
3170     lparam_t       extra_value;
3171 };
3172 struct set_window_info_reply
3173 {
3174     struct reply_header __header;
3175     unsigned int   old_style;
3176     unsigned int   old_ex_style;
3177     mod_handle_t   old_instance;
3178     lparam_t       old_user_data;
3179     lparam_t       old_extra_value;
3180     unsigned int   old_id;
3181     char __pad_44[4];
3182 };
3183 #define SET_WIN_STYLE     0x01
3184 #define SET_WIN_EXSTYLE   0x02
3185 #define SET_WIN_ID        0x04
3186 #define SET_WIN_INSTANCE  0x08
3187 #define SET_WIN_USERDATA  0x10
3188 #define SET_WIN_EXTRA     0x20
3189 #define SET_WIN_UNICODE   0x40
3190
3191
3192
3193 struct set_parent_request
3194 {
3195     struct request_header __header;
3196     user_handle_t  handle;
3197     user_handle_t  parent;
3198     char __pad_20[4];
3199 };
3200 struct set_parent_reply
3201 {
3202     struct reply_header __header;
3203     user_handle_t  old_parent;
3204     user_handle_t  full_parent;
3205 };
3206
3207
3208
3209 struct get_window_parents_request
3210 {
3211     struct request_header __header;
3212     user_handle_t  handle;
3213 };
3214 struct get_window_parents_reply
3215 {
3216     struct reply_header __header;
3217     int            count;
3218     /* VARARG(parents,user_handles); */
3219     char __pad_12[4];
3220 };
3221
3222
3223
3224 struct get_window_children_request
3225 {
3226     struct request_header __header;
3227     obj_handle_t   desktop;
3228     user_handle_t  parent;
3229     atom_t         atom;
3230     thread_id_t    tid;
3231     /* VARARG(class,unicode_str); */
3232     char __pad_28[4];
3233 };
3234 struct get_window_children_reply
3235 {
3236     struct reply_header __header;
3237     int            count;
3238     /* VARARG(children,user_handles); */
3239     char __pad_12[4];
3240 };
3241
3242
3243
3244 struct get_window_children_from_point_request
3245 {
3246     struct request_header __header;
3247     user_handle_t  parent;
3248     int            x;
3249     int            y;
3250 };
3251 struct get_window_children_from_point_reply
3252 {
3253     struct reply_header __header;
3254     int            count;
3255     /* VARARG(children,user_handles); */
3256     char __pad_12[4];
3257 };
3258
3259
3260
3261 struct get_window_tree_request
3262 {
3263     struct request_header __header;
3264     user_handle_t  handle;
3265 };
3266 struct get_window_tree_reply
3267 {
3268     struct reply_header __header;
3269     user_handle_t  parent;
3270     user_handle_t  owner;
3271     user_handle_t  next_sibling;
3272     user_handle_t  prev_sibling;
3273     user_handle_t  first_sibling;
3274     user_handle_t  last_sibling;
3275     user_handle_t  first_child;
3276     user_handle_t  last_child;
3277 };
3278
3279
3280 struct set_window_pos_request
3281 {
3282     struct request_header __header;
3283     unsigned int   flags;
3284     user_handle_t  handle;
3285     user_handle_t  previous;
3286     rectangle_t    window;
3287     rectangle_t    client;
3288     /* VARARG(valid,rectangles); */
3289 };
3290 struct set_window_pos_reply
3291 {
3292     struct reply_header __header;
3293     unsigned int   new_style;
3294     unsigned int   new_ex_style;
3295 };
3296
3297
3298
3299 struct get_window_rectangles_request
3300 {
3301     struct request_header __header;
3302     user_handle_t  handle;
3303     int            relative;
3304     char __pad_20[4];
3305 };
3306 struct get_window_rectangles_reply
3307 {
3308     struct reply_header __header;
3309     rectangle_t    window;
3310     rectangle_t    visible;
3311     rectangle_t    client;
3312 };
3313 enum coords_relative
3314 {
3315     COORDS_CLIENT,
3316     COORDS_WINDOW,
3317     COORDS_PARENT,
3318     COORDS_SCREEN
3319 };
3320
3321
3322
3323 struct get_window_text_request
3324 {
3325     struct request_header __header;
3326     user_handle_t  handle;
3327 };
3328 struct get_window_text_reply
3329 {
3330     struct reply_header __header;
3331     /* VARARG(text,unicode_str); */
3332 };
3333
3334
3335
3336 struct set_window_text_request
3337 {
3338     struct request_header __header;
3339     user_handle_t  handle;
3340     /* VARARG(text,unicode_str); */
3341 };
3342 struct set_window_text_reply
3343 {
3344     struct reply_header __header;
3345 };
3346
3347
3348
3349 struct get_windows_offset_request
3350 {
3351     struct request_header __header;
3352     user_handle_t  from;
3353     user_handle_t  to;
3354     char __pad_20[4];
3355 };
3356 struct get_windows_offset_reply
3357 {
3358     struct reply_header __header;
3359     int            x;
3360     int            y;
3361     int            mirror;
3362     char __pad_20[4];
3363 };
3364
3365
3366
3367 struct get_visible_region_request
3368 {
3369     struct request_header __header;
3370     user_handle_t  window;
3371     unsigned int   flags;
3372     char __pad_20[4];
3373 };
3374 struct get_visible_region_reply
3375 {
3376     struct reply_header __header;
3377     user_handle_t  top_win;
3378     rectangle_t    top_rect;
3379     rectangle_t    win_rect;
3380     data_size_t    total_size;
3381     /* VARARG(region,rectangles); */
3382 };
3383
3384
3385
3386 struct get_window_region_request
3387 {
3388     struct request_header __header;
3389     user_handle_t  window;
3390 };
3391 struct get_window_region_reply
3392 {
3393     struct reply_header __header;
3394     data_size_t    total_size;
3395     /* VARARG(region,rectangles); */
3396     char __pad_12[4];
3397 };
3398
3399
3400
3401 struct set_window_region_request
3402 {
3403     struct request_header __header;
3404     user_handle_t  window;
3405     int            redraw;
3406     /* VARARG(region,rectangles); */
3407     char __pad_20[4];
3408 };
3409 struct set_window_region_reply
3410 {
3411     struct reply_header __header;
3412 };
3413
3414
3415
3416 struct get_update_region_request
3417 {
3418     struct request_header __header;
3419     user_handle_t  window;
3420     user_handle_t  from_child;
3421     unsigned int   flags;
3422 };
3423 struct get_update_region_reply
3424 {
3425     struct reply_header __header;
3426     user_handle_t  child;
3427     unsigned int   flags;
3428     data_size_t    total_size;
3429     /* VARARG(region,rectangles); */
3430     char __pad_20[4];
3431 };
3432 #define UPDATE_NONCLIENT       0x01
3433 #define UPDATE_ERASE           0x02
3434 #define UPDATE_PAINT           0x04
3435 #define UPDATE_INTERNALPAINT   0x08
3436 #define UPDATE_ALLCHILDREN     0x10
3437 #define UPDATE_NOCHILDREN      0x20
3438 #define UPDATE_NOREGION        0x40
3439 #define UPDATE_DELAYED_ERASE   0x80
3440
3441
3442
3443 struct update_window_zorder_request
3444 {
3445     struct request_header __header;
3446     user_handle_t  window;
3447     rectangle_t    rect;
3448 };
3449 struct update_window_zorder_reply
3450 {
3451     struct reply_header __header;
3452 };
3453
3454
3455
3456 struct redraw_window_request
3457 {
3458     struct request_header __header;
3459     user_handle_t  window;
3460     unsigned int   flags;
3461     /* VARARG(region,rectangles); */
3462     char __pad_20[4];
3463 };
3464 struct redraw_window_reply
3465 {
3466     struct reply_header __header;
3467 };
3468
3469
3470
3471 struct set_window_property_request
3472 {
3473     struct request_header __header;
3474     user_handle_t  window;
3475     lparam_t       data;
3476     atom_t         atom;
3477     /* VARARG(name,unicode_str); */
3478     char __pad_28[4];
3479 };
3480 struct set_window_property_reply
3481 {
3482     struct reply_header __header;
3483 };
3484
3485
3486
3487 struct remove_window_property_request
3488 {
3489     struct request_header __header;
3490     user_handle_t  window;
3491     atom_t         atom;
3492     /* VARARG(name,unicode_str); */
3493     char __pad_20[4];
3494 };
3495 struct remove_window_property_reply
3496 {
3497     struct reply_header __header;
3498     lparam_t       data;
3499 };
3500
3501
3502
3503 struct get_window_property_request
3504 {
3505     struct request_header __header;
3506     user_handle_t  window;
3507     atom_t         atom;
3508     /* VARARG(name,unicode_str); */
3509     char __pad_20[4];
3510 };
3511 struct get_window_property_reply
3512 {
3513     struct reply_header __header;
3514     lparam_t       data;
3515 };
3516
3517
3518
3519 struct get_window_properties_request
3520 {
3521     struct request_header __header;
3522     user_handle_t  window;
3523 };
3524 struct get_window_properties_reply
3525 {
3526     struct reply_header __header;
3527     int            total;
3528     /* VARARG(props,properties); */
3529     char __pad_12[4];
3530 };
3531
3532
3533
3534 struct create_winstation_request
3535 {
3536     struct request_header __header;
3537     unsigned int flags;
3538     unsigned int access;
3539     unsigned int attributes;
3540     /* VARARG(name,unicode_str); */
3541 };
3542 struct create_winstation_reply
3543 {
3544     struct reply_header __header;
3545     obj_handle_t handle;
3546     char __pad_12[4];
3547 };
3548
3549
3550
3551 struct open_winstation_request
3552 {
3553     struct request_header __header;
3554     unsigned int access;
3555     unsigned int attributes;
3556     /* VARARG(name,unicode_str); */
3557     char __pad_20[4];
3558 };
3559 struct open_winstation_reply
3560 {
3561     struct reply_header __header;
3562     obj_handle_t handle;
3563     char __pad_12[4];
3564 };
3565
3566
3567
3568 struct close_winstation_request
3569 {
3570     struct request_header __header;
3571     obj_handle_t handle;
3572 };
3573 struct close_winstation_reply
3574 {
3575     struct reply_header __header;
3576 };
3577
3578
3579
3580 struct get_process_winstation_request
3581 {
3582     struct request_header __header;
3583     char __pad_12[4];
3584 };
3585 struct get_process_winstation_reply
3586 {
3587     struct reply_header __header;
3588     obj_handle_t handle;
3589     char __pad_12[4];
3590 };
3591
3592
3593
3594 struct set_process_winstation_request
3595 {
3596     struct request_header __header;
3597     obj_handle_t handle;
3598 };
3599 struct set_process_winstation_reply
3600 {
3601     struct reply_header __header;
3602 };
3603
3604
3605
3606 struct enum_winstation_request
3607 {
3608     struct request_header __header;
3609     unsigned int index;
3610 };
3611 struct enum_winstation_reply
3612 {
3613     struct reply_header __header;
3614     unsigned int next;
3615     /* VARARG(name,unicode_str); */
3616     char __pad_12[4];
3617 };
3618
3619
3620
3621 struct create_desktop_request
3622 {
3623     struct request_header __header;
3624     unsigned int flags;
3625     unsigned int access;
3626     unsigned int attributes;
3627     /* VARARG(name,unicode_str); */
3628 };
3629 struct create_desktop_reply
3630 {
3631     struct reply_header __header;
3632     obj_handle_t handle;
3633     char __pad_12[4];
3634 };
3635
3636
3637
3638 struct open_desktop_request
3639 {
3640     struct request_header __header;
3641     obj_handle_t winsta;
3642     unsigned int flags;
3643     unsigned int access;
3644     unsigned int attributes;
3645     /* VARARG(name,unicode_str); */
3646     char __pad_28[4];
3647 };
3648 struct open_desktop_reply
3649 {
3650     struct reply_header __header;
3651     obj_handle_t handle;
3652     char __pad_12[4];
3653 };
3654
3655
3656
3657 struct close_desktop_request
3658 {
3659     struct request_header __header;
3660     obj_handle_t handle;
3661 };
3662 struct close_desktop_reply
3663 {
3664     struct reply_header __header;
3665 };
3666
3667
3668
3669 struct get_thread_desktop_request
3670 {
3671     struct request_header __header;
3672     thread_id_t  tid;
3673 };
3674 struct get_thread_desktop_reply
3675 {
3676     struct reply_header __header;
3677     obj_handle_t handle;
3678     char __pad_12[4];
3679 };
3680
3681
3682
3683 struct set_thread_desktop_request
3684 {
3685     struct request_header __header;
3686     obj_handle_t handle;
3687 };
3688 struct set_thread_desktop_reply
3689 {
3690     struct reply_header __header;
3691 };
3692
3693
3694
3695 struct enum_desktop_request
3696 {
3697     struct request_header __header;
3698     obj_handle_t winstation;
3699     unsigned int index;
3700     char __pad_20[4];
3701 };
3702 struct enum_desktop_reply
3703 {
3704     struct reply_header __header;
3705     unsigned int next;
3706     /* VARARG(name,unicode_str); */
3707     char __pad_12[4];
3708 };
3709
3710
3711
3712 struct set_user_object_info_request
3713 {
3714     struct request_header __header;
3715     obj_handle_t handle;
3716     unsigned int flags;
3717     unsigned int obj_flags;
3718 };
3719 struct set_user_object_info_reply
3720 {
3721     struct reply_header __header;
3722     int          is_desktop;
3723     unsigned int old_obj_flags;
3724     /* VARARG(name,unicode_str); */
3725 };
3726 #define SET_USER_OBJECT_FLAGS 1
3727
3728
3729
3730 struct register_hotkey_request
3731 {
3732     struct request_header __header;
3733     user_handle_t  window;
3734     int            id;
3735     unsigned int   flags;
3736     unsigned int   vkey;
3737     char __pad_28[4];
3738 };
3739 struct register_hotkey_reply
3740 {
3741     struct reply_header __header;
3742     int            replaced;
3743     unsigned int   flags;
3744     unsigned int   vkey;
3745     char __pad_20[4];
3746 };
3747
3748
3749
3750 struct unregister_hotkey_request
3751 {
3752     struct request_header __header;
3753     user_handle_t  window;
3754     int            id;
3755     char __pad_20[4];
3756 };
3757 struct unregister_hotkey_reply
3758 {
3759     struct reply_header __header;
3760     unsigned int   flags;
3761     unsigned int   vkey;
3762 };
3763
3764
3765
3766 struct attach_thread_input_request
3767 {
3768     struct request_header __header;
3769     thread_id_t    tid_from;
3770     thread_id_t    tid_to;
3771     int            attach;
3772 };
3773 struct attach_thread_input_reply
3774 {
3775     struct reply_header __header;
3776 };
3777
3778
3779
3780 struct get_thread_input_request
3781 {
3782     struct request_header __header;
3783     thread_id_t    tid;
3784 };
3785 struct get_thread_input_reply
3786 {
3787     struct reply_header __header;
3788     user_handle_t  focus;
3789     user_handle_t  capture;
3790     user_handle_t  active;
3791     user_handle_t  foreground;
3792     user_handle_t  menu_owner;
3793     user_handle_t  move_size;
3794     user_handle_t  caret;
3795     user_handle_t  cursor;
3796     int            show_count;
3797     rectangle_t    rect;
3798     char __pad_60[4];
3799 };
3800
3801
3802
3803 struct get_last_input_time_request
3804 {
3805     struct request_header __header;
3806     char __pad_12[4];
3807 };
3808 struct get_last_input_time_reply
3809 {
3810     struct reply_header __header;
3811     unsigned int time;
3812     char __pad_12[4];
3813 };
3814
3815
3816
3817 struct get_key_state_request
3818 {
3819     struct request_header __header;
3820     thread_id_t    tid;
3821     int            key;
3822     char __pad_20[4];
3823 };
3824 struct get_key_state_reply
3825 {
3826     struct reply_header __header;
3827     unsigned char  state;
3828     /* VARARG(keystate,bytes); */
3829     char __pad_9[7];
3830 };
3831
3832
3833 struct set_key_state_request
3834 {
3835     struct request_header __header;
3836     thread_id_t    tid;
3837     /* VARARG(keystate,bytes); */
3838 };
3839 struct set_key_state_reply
3840 {
3841     struct reply_header __header;
3842 };
3843
3844
3845 struct set_foreground_window_request
3846 {
3847     struct request_header __header;
3848     user_handle_t  handle;
3849 };
3850 struct set_foreground_window_reply
3851 {
3852     struct reply_header __header;
3853     user_handle_t  previous;
3854     int            send_msg_old;
3855     int            send_msg_new;
3856     char __pad_20[4];
3857 };
3858
3859
3860 struct set_focus_window_request
3861 {
3862     struct request_header __header;
3863     user_handle_t  handle;
3864 };
3865 struct set_focus_window_reply
3866 {
3867     struct reply_header __header;
3868     user_handle_t  previous;
3869     char __pad_12[4];
3870 };
3871
3872
3873 struct set_active_window_request
3874 {
3875     struct request_header __header;
3876     user_handle_t  handle;
3877 };
3878 struct set_active_window_reply
3879 {
3880     struct reply_header __header;
3881     user_handle_t  previous;
3882     char __pad_12[4];
3883 };
3884
3885
3886 struct set_capture_window_request
3887 {
3888     struct request_header __header;
3889     user_handle_t  handle;
3890     unsigned int   flags;
3891     char __pad_20[4];
3892 };
3893 struct set_capture_window_reply
3894 {
3895     struct reply_header __header;
3896     user_handle_t  previous;
3897     user_handle_t  full_handle;
3898 };
3899 #define CAPTURE_MENU     0x01
3900 #define CAPTURE_MOVESIZE 0x02
3901
3902
3903
3904 struct set_caret_window_request
3905 {
3906     struct request_header __header;
3907     user_handle_t  handle;
3908     int            width;
3909     int            height;
3910 };
3911 struct set_caret_window_reply
3912 {
3913     struct reply_header __header;
3914     user_handle_t  previous;
3915     rectangle_t    old_rect;
3916     int            old_hide;
3917     int            old_state;
3918     char __pad_36[4];
3919 };
3920
3921
3922
3923 struct set_caret_info_request
3924 {
3925     struct request_header __header;
3926     unsigned int   flags;
3927     user_handle_t  handle;
3928     int            x;
3929     int            y;
3930     int            hide;
3931     int            state;
3932     char __pad_36[4];
3933 };
3934 struct set_caret_info_reply
3935 {
3936     struct reply_header __header;
3937     user_handle_t  full_handle;
3938     rectangle_t    old_rect;
3939     int            old_hide;
3940     int            old_state;
3941     char __pad_36[4];
3942 };
3943 #define SET_CARET_POS        0x01
3944 #define SET_CARET_HIDE       0x02
3945 #define SET_CARET_STATE      0x04
3946
3947
3948
3949 struct set_hook_request
3950 {
3951     struct request_header __header;
3952     int            id;
3953     process_id_t   pid;
3954     thread_id_t    tid;
3955     int            event_min;
3956     int            event_max;
3957     client_ptr_t   proc;
3958     int            flags;
3959     int            unicode;
3960     /* VARARG(module,unicode_str); */
3961 };
3962 struct set_hook_reply
3963 {
3964     struct reply_header __header;
3965     user_handle_t  handle;
3966     unsigned int   active_hooks;
3967 };
3968
3969
3970
3971 struct remove_hook_request
3972 {
3973     struct request_header __header;
3974     user_handle_t  handle;
3975     client_ptr_t   proc;
3976     int            id;
3977     char __pad_28[4];
3978 };
3979 struct remove_hook_reply
3980 {
3981     struct reply_header __header;
3982     unsigned int   active_hooks;
3983     char __pad_12[4];
3984 };
3985
3986
3987
3988 struct start_hook_chain_request
3989 {
3990     struct request_header __header;
3991     int            id;
3992     int            event;
3993     user_handle_t  window;
3994     int            object_id;
3995     int            child_id;
3996 };
3997 struct start_hook_chain_reply
3998 {
3999     struct reply_header __header;
4000     user_handle_t  handle;
4001     process_id_t   pid;
4002     thread_id_t    tid;
4003     int            unicode;
4004     client_ptr_t   proc;
4005     unsigned int   active_hooks;
4006     /* VARARG(module,unicode_str); */
4007     char __pad_36[4];
4008 };
4009
4010
4011
4012 struct finish_hook_chain_request
4013 {
4014     struct request_header __header;
4015     int            id;
4016 };
4017 struct finish_hook_chain_reply
4018 {
4019     struct reply_header __header;
4020 };
4021
4022
4023
4024 struct get_hook_info_request
4025 {
4026     struct request_header __header;
4027     user_handle_t  handle;
4028     int            get_next;
4029     int            event;
4030     user_handle_t  window;
4031     int            object_id;
4032     int            child_id;
4033     char __pad_36[4];
4034 };
4035 struct get_hook_info_reply
4036 {
4037     struct reply_header __header;
4038     user_handle_t  handle;
4039     int            id;
4040     process_id_t   pid;
4041     thread_id_t    tid;
4042     client_ptr_t   proc;
4043     int            unicode;
4044     /* VARARG(module,unicode_str); */
4045     char __pad_36[4];
4046 };
4047
4048
4049
4050 struct create_class_request
4051 {
4052     struct request_header __header;
4053     int            local;
4054     atom_t         atom;
4055     unsigned int   style;
4056     mod_handle_t   instance;
4057     int            extra;
4058     int            win_extra;
4059     client_ptr_t   client_ptr;
4060     /* VARARG(name,unicode_str); */
4061 };
4062 struct create_class_reply
4063 {
4064     struct reply_header __header;
4065     atom_t         atom;
4066     char __pad_12[4];
4067 };
4068
4069
4070
4071 struct destroy_class_request
4072 {
4073     struct request_header __header;
4074     atom_t         atom;
4075     mod_handle_t   instance;
4076     /* VARARG(name,unicode_str); */
4077 };
4078 struct destroy_class_reply
4079 {
4080     struct reply_header __header;
4081     client_ptr_t   client_ptr;
4082 };
4083
4084
4085
4086 struct set_class_info_request
4087 {
4088     struct request_header __header;
4089     user_handle_t  window;
4090     unsigned int   flags;
4091     atom_t         atom;
4092     unsigned int   style;
4093     int            win_extra;
4094     mod_handle_t   instance;
4095     int            extra_offset;
4096     data_size_t    extra_size;
4097     lparam_t       extra_value;
4098 };
4099 struct set_class_info_reply
4100 {
4101     struct reply_header __header;
4102     atom_t         old_atom;
4103     unsigned int   old_style;
4104     int            old_extra;
4105     int            old_win_extra;
4106     mod_handle_t   old_instance;
4107     lparam_t       old_extra_value;
4108 };
4109 #define SET_CLASS_ATOM      0x0001
4110 #define SET_CLASS_STYLE     0x0002
4111 #define SET_CLASS_WINEXTRA  0x0004
4112 #define SET_CLASS_INSTANCE  0x0008
4113 #define SET_CLASS_EXTRA     0x0010
4114
4115
4116
4117 struct set_clipboard_info_request
4118 {
4119     struct request_header __header;
4120     unsigned int   flags;
4121     user_handle_t  clipboard;
4122     user_handle_t  owner;
4123     user_handle_t  viewer;
4124     unsigned int   seqno;
4125 };
4126 struct set_clipboard_info_reply
4127 {
4128     struct reply_header __header;
4129     unsigned int   flags;
4130     user_handle_t  old_clipboard;
4131     user_handle_t  old_owner;
4132     user_handle_t  old_viewer;
4133     unsigned int   seqno;
4134     char __pad_28[4];
4135 };
4136
4137 #define SET_CB_OPEN      0x001
4138 #define SET_CB_OWNER     0x002
4139 #define SET_CB_VIEWER    0x004
4140 #define SET_CB_SEQNO     0x008
4141 #define SET_CB_RELOWNER  0x010
4142 #define SET_CB_CLOSE     0x020
4143 #define CB_OPEN          0x040
4144 #define CB_OWNER         0x080
4145 #define CB_PROCESS       0x100
4146
4147
4148
4149 struct open_token_request
4150 {
4151     struct request_header __header;
4152     obj_handle_t   handle;
4153     unsigned int   access;
4154     unsigned int   attributes;
4155     unsigned int   flags;
4156     char __pad_28[4];
4157 };
4158 struct open_token_reply
4159 {
4160     struct reply_header __header;
4161     obj_handle_t   token;
4162     char __pad_12[4];
4163 };
4164 #define OPEN_TOKEN_THREAD   1
4165 #define OPEN_TOKEN_AS_SELF  2
4166
4167
4168
4169 struct set_global_windows_request
4170 {
4171     struct request_header __header;
4172     unsigned int   flags;
4173     user_handle_t  shell_window;
4174     user_handle_t  shell_listview;
4175     user_handle_t  progman_window;
4176     user_handle_t  taskman_window;
4177 };
4178 struct set_global_windows_reply
4179 {
4180     struct reply_header __header;
4181     user_handle_t  old_shell_window;
4182     user_handle_t  old_shell_listview;
4183     user_handle_t  old_progman_window;
4184     user_handle_t  old_taskman_window;
4185 };
4186 #define SET_GLOBAL_SHELL_WINDOWS   0x01
4187 #define SET_GLOBAL_PROGMAN_WINDOW  0x02
4188 #define SET_GLOBAL_TASKMAN_WINDOW  0x04
4189
4190
4191 struct adjust_token_privileges_request
4192 {
4193     struct request_header __header;
4194     obj_handle_t  handle;
4195     int           disable_all;
4196     int           get_modified_state;
4197     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4198 };
4199 struct adjust_token_privileges_reply
4200 {
4201     struct reply_header __header;
4202     unsigned int  len;
4203     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4204     char __pad_12[4];
4205 };
4206
4207
4208 struct get_token_privileges_request
4209 {
4210     struct request_header __header;
4211     obj_handle_t  handle;
4212 };
4213 struct get_token_privileges_reply
4214 {
4215     struct reply_header __header;
4216     unsigned int  len;
4217     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4218     char __pad_12[4];
4219 };
4220
4221
4222 struct check_token_privileges_request
4223 {
4224     struct request_header __header;
4225     obj_handle_t  handle;
4226     int           all_required;
4227     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4228     char __pad_20[4];
4229 };
4230 struct check_token_privileges_reply
4231 {
4232     struct reply_header __header;
4233     int           has_privileges;
4234     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4235     char __pad_12[4];
4236 };
4237
4238 struct duplicate_token_request
4239 {
4240     struct request_header __header;
4241     obj_handle_t  handle;
4242     unsigned int  access;
4243     unsigned int  attributes;
4244     int           primary;
4245     int           impersonation_level;
4246 };
4247 struct duplicate_token_reply
4248 {
4249     struct reply_header __header;
4250     obj_handle_t  new_handle;
4251     char __pad_12[4];
4252 };
4253
4254 struct access_check_request
4255 {
4256     struct request_header __header;
4257     obj_handle_t    handle;
4258     unsigned int    desired_access;
4259     unsigned int    mapping_read;
4260     unsigned int    mapping_write;
4261     unsigned int    mapping_execute;
4262     unsigned int    mapping_all;
4263     /* VARARG(sd,security_descriptor); */
4264     char __pad_36[4];
4265 };
4266 struct access_check_reply
4267 {
4268     struct reply_header __header;
4269     unsigned int    access_granted;
4270     unsigned int    access_status;
4271     unsigned int    privileges_len;
4272     /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4273     char __pad_20[4];
4274 };
4275
4276 struct get_token_sid_request
4277 {
4278     struct request_header __header;
4279     obj_handle_t    handle;
4280     unsigned int    which_sid;
4281     char __pad_20[4];
4282 };
4283 struct get_token_sid_reply
4284 {
4285     struct reply_header __header;
4286     data_size_t     sid_len;
4287     /* VARARG(sid,SID); */
4288     char __pad_12[4];
4289 };
4290
4291 struct get_token_groups_request
4292 {
4293     struct request_header __header;
4294     obj_handle_t    handle;
4295 };
4296 struct get_token_groups_reply
4297 {
4298     struct reply_header __header;
4299     data_size_t     user_len;
4300     /* VARARG(user,token_groups); */
4301     char __pad_12[4];
4302 };
4303
4304 struct get_token_default_dacl_request
4305 {
4306     struct request_header __header;
4307     obj_handle_t    handle;
4308 };
4309 struct get_token_default_dacl_reply
4310 {
4311     struct reply_header __header;
4312     data_size_t     acl_len;
4313     /* VARARG(acl,ACL); */
4314     char __pad_12[4];
4315 };
4316
4317 struct set_token_default_dacl_request
4318 {
4319     struct request_header __header;
4320     obj_handle_t    handle;
4321     /* VARARG(acl,ACL); */
4322 };
4323 struct set_token_default_dacl_reply
4324 {
4325     struct reply_header __header;
4326 };
4327
4328 struct set_security_object_request
4329 {
4330     struct request_header __header;
4331     obj_handle_t    handle;
4332     unsigned int    security_info;
4333     /* VARARG(sd,security_descriptor); */
4334     char __pad_20[4];
4335 };
4336 struct set_security_object_reply
4337 {
4338     struct reply_header __header;
4339 };
4340
4341 struct get_security_object_request
4342 {
4343     struct request_header __header;
4344     obj_handle_t    handle;
4345     unsigned int    security_info;
4346     char __pad_20[4];
4347 };
4348 struct get_security_object_reply
4349 {
4350     struct reply_header __header;
4351     unsigned int    sd_len;
4352     /* VARARG(sd,security_descriptor); */
4353     char __pad_12[4];
4354 };
4355
4356
4357 struct create_mailslot_request
4358 {
4359     struct request_header __header;
4360     unsigned int   access;
4361     unsigned int   attributes;
4362     obj_handle_t   rootdir;
4363     timeout_t      read_timeout;
4364     unsigned int   max_msgsize;
4365     /* VARARG(name,unicode_str); */
4366     char __pad_36[4];
4367 };
4368 struct create_mailslot_reply
4369 {
4370     struct reply_header __header;
4371     obj_handle_t   handle;
4372     char __pad_12[4];
4373 };
4374
4375
4376
4377 struct set_mailslot_info_request
4378 {
4379     struct request_header __header;
4380     obj_handle_t   handle;
4381     timeout_t      read_timeout;
4382     unsigned int   flags;
4383     char __pad_28[4];
4384 };
4385 struct set_mailslot_info_reply
4386 {
4387     struct reply_header __header;
4388     timeout_t      read_timeout;
4389     unsigned int   max_msgsize;
4390     char __pad_20[4];
4391 };
4392 #define MAILSLOT_SET_READ_TIMEOUT  1
4393
4394
4395
4396 struct create_directory_request
4397 {
4398     struct request_header __header;
4399     unsigned int   access;
4400     unsigned int   attributes;
4401     obj_handle_t   rootdir;
4402     /* VARARG(directory_name,unicode_str); */
4403 };
4404 struct create_directory_reply
4405 {
4406     struct reply_header __header;
4407     obj_handle_t   handle;
4408     char __pad_12[4];
4409 };
4410
4411
4412
4413 struct open_directory_request
4414 {
4415     struct request_header __header;
4416     unsigned int   access;
4417     unsigned int   attributes;
4418     obj_handle_t   rootdir;
4419     /* VARARG(directory_name,unicode_str); */
4420 };
4421 struct open_directory_reply
4422 {
4423     struct reply_header __header;
4424     obj_handle_t   handle;
4425     char __pad_12[4];
4426 };
4427
4428
4429
4430 struct get_directory_entry_request
4431 {
4432     struct request_header __header;
4433     obj_handle_t   handle;
4434     unsigned int   index;
4435     char __pad_20[4];
4436 };
4437 struct get_directory_entry_reply
4438 {
4439     struct reply_header __header;
4440     data_size_t    name_len;
4441     /* VARARG(name,unicode_str,name_len); */
4442     /* VARARG(type,unicode_str); */
4443     char __pad_12[4];
4444 };
4445
4446
4447
4448 struct create_symlink_request
4449 {
4450     struct request_header __header;
4451     unsigned int   access;
4452     unsigned int   attributes;
4453     obj_handle_t   rootdir;
4454     data_size_t    name_len;
4455     /* VARARG(name,unicode_str,name_len); */
4456     /* VARARG(target_name,unicode_str); */
4457     char __pad_28[4];
4458 };
4459 struct create_symlink_reply
4460 {
4461     struct reply_header __header;
4462     obj_handle_t   handle;
4463     char __pad_12[4];
4464 };
4465
4466
4467
4468 struct open_symlink_request
4469 {
4470     struct request_header __header;
4471     unsigned int   access;
4472     unsigned int   attributes;
4473     obj_handle_t   rootdir;
4474     /* VARARG(name,unicode_str); */
4475 };
4476 struct open_symlink_reply
4477 {
4478     struct reply_header __header;
4479     obj_handle_t   handle;
4480     char __pad_12[4];
4481 };
4482
4483
4484
4485 struct query_symlink_request
4486 {
4487     struct request_header __header;
4488     obj_handle_t   handle;
4489 };
4490 struct query_symlink_reply
4491 {
4492     struct reply_header __header;
4493     data_size_t    total;
4494     /* VARARG(target_name,unicode_str); */
4495     char __pad_12[4];
4496 };
4497
4498
4499
4500 struct get_object_info_request
4501 {
4502     struct request_header __header;
4503     obj_handle_t   handle;
4504 };
4505 struct get_object_info_reply
4506 {
4507     struct reply_header __header;
4508     unsigned int   access;
4509     unsigned int   ref_count;
4510     data_size_t    total;
4511     /* VARARG(name,unicode_str); */
4512     char __pad_20[4];
4513 };
4514
4515
4516
4517 struct unlink_object_request
4518 {
4519     struct request_header __header;
4520     obj_handle_t   handle;
4521 };
4522 struct unlink_object_reply
4523 {
4524     struct reply_header __header;
4525 };
4526
4527
4528
4529 struct get_token_impersonation_level_request
4530 {
4531     struct request_header __header;
4532     obj_handle_t   handle;
4533 };
4534 struct get_token_impersonation_level_reply
4535 {
4536     struct reply_header __header;
4537     int            impersonation_level;
4538     char __pad_12[4];
4539 };
4540
4541
4542 struct allocate_locally_unique_id_request
4543 {
4544     struct request_header __header;
4545     char __pad_12[4];
4546 };
4547 struct allocate_locally_unique_id_reply
4548 {
4549     struct reply_header __header;
4550     luid_t         luid;
4551 };
4552
4553
4554
4555 struct create_device_manager_request
4556 {
4557     struct request_header __header;
4558     unsigned int access;
4559     unsigned int attributes;
4560     char __pad_20[4];
4561 };
4562 struct create_device_manager_reply
4563 {
4564     struct reply_header __header;
4565     obj_handle_t handle;
4566     char __pad_12[4];
4567 };
4568
4569
4570
4571 struct create_device_request
4572 {
4573     struct request_header __header;
4574     unsigned int access;
4575     unsigned int attributes;
4576     obj_handle_t rootdir;
4577     client_ptr_t user_ptr;
4578     obj_handle_t manager;
4579     /* VARARG(name,unicode_str); */
4580     char __pad_36[4];
4581 };
4582 struct create_device_reply
4583 {
4584     struct reply_header __header;
4585     obj_handle_t handle;
4586     char __pad_12[4];
4587 };
4588
4589
4590
4591 struct delete_device_request
4592 {
4593     struct request_header __header;
4594     obj_handle_t handle;
4595 };
4596 struct delete_device_reply
4597 {
4598     struct reply_header __header;
4599 };
4600
4601
4602
4603 struct get_next_device_request_request
4604 {
4605     struct request_header __header;
4606     obj_handle_t manager;
4607     obj_handle_t prev;
4608     unsigned int status;
4609     /* VARARG(prev_data,bytes); */
4610 };
4611 struct get_next_device_request_reply
4612 {
4613     struct reply_header __header;
4614     obj_handle_t next;
4615     ioctl_code_t code;
4616     client_ptr_t user_ptr;
4617     process_id_t client_pid;
4618     thread_id_t  client_tid;
4619     data_size_t  in_size;
4620     data_size_t  out_size;
4621     /* VARARG(next_data,bytes); */
4622 };
4623
4624
4625
4626 struct make_process_system_request
4627 {
4628     struct request_header __header;
4629     char __pad_12[4];
4630 };
4631 struct make_process_system_reply
4632 {
4633     struct reply_header __header;
4634     obj_handle_t event;
4635     char __pad_12[4];
4636 };
4637
4638
4639
4640 struct get_token_statistics_request
4641 {
4642     struct request_header __header;
4643     obj_handle_t   handle;
4644 };
4645 struct get_token_statistics_reply
4646 {
4647     struct reply_header __header;
4648     luid_t         token_id;
4649     luid_t         modified_id;
4650     int            primary;
4651     int            impersonation_level;
4652     int            group_count;
4653     int            privilege_count;
4654 };
4655
4656
4657
4658 struct create_completion_request
4659 {
4660     struct request_header __header;
4661     unsigned int access;
4662     unsigned int attributes;
4663     unsigned int concurrent;
4664     obj_handle_t rootdir;
4665     /* VARARG(filename,string); */
4666     char __pad_28[4];
4667 };
4668 struct create_completion_reply
4669 {
4670     struct reply_header __header;
4671     obj_handle_t handle;
4672     char __pad_12[4];
4673 };
4674
4675
4676
4677 struct open_completion_request
4678 {
4679     struct request_header __header;
4680     unsigned int access;
4681     unsigned int attributes;
4682     obj_handle_t rootdir;
4683     /* VARARG(filename,string); */
4684 };
4685 struct open_completion_reply
4686 {
4687     struct reply_header __header;
4688     obj_handle_t handle;
4689     char __pad_12[4];
4690 };
4691
4692
4693
4694 struct add_completion_request
4695 {
4696     struct request_header __header;
4697     obj_handle_t  handle;
4698     apc_param_t   ckey;
4699     apc_param_t   cvalue;
4700     unsigned int  information;
4701     unsigned int  status;
4702 };
4703 struct add_completion_reply
4704 {
4705     struct reply_header __header;
4706 };
4707
4708
4709
4710 struct remove_completion_request
4711 {
4712     struct request_header __header;
4713     obj_handle_t handle;
4714 };
4715 struct remove_completion_reply
4716 {
4717     struct reply_header __header;
4718     apc_param_t   ckey;
4719     apc_param_t   cvalue;
4720     unsigned int  information;
4721     unsigned int  status;
4722 };
4723
4724
4725
4726 struct query_completion_request
4727 {
4728     struct request_header __header;
4729     obj_handle_t  handle;
4730 };
4731 struct query_completion_reply
4732 {
4733     struct reply_header __header;
4734     unsigned int  depth;
4735     char __pad_12[4];
4736 };
4737
4738
4739
4740 struct set_completion_info_request
4741 {
4742     struct request_header __header;
4743     obj_handle_t  handle;
4744     apc_param_t   ckey;
4745     obj_handle_t  chandle;
4746     char __pad_28[4];
4747 };
4748 struct set_completion_info_reply
4749 {
4750     struct reply_header __header;
4751 };
4752
4753
4754
4755 struct add_fd_completion_request
4756 {
4757     struct request_header __header;
4758     obj_handle_t   handle;
4759     apc_param_t    cvalue;
4760     unsigned int   status;
4761     unsigned int   information;
4762 };
4763 struct add_fd_completion_reply
4764 {
4765     struct reply_header __header;
4766 };
4767
4768
4769
4770 struct get_window_layered_info_request
4771 {
4772     struct request_header __header;
4773     user_handle_t  handle;
4774 };
4775 struct get_window_layered_info_reply
4776 {
4777     struct reply_header __header;
4778     unsigned int   color_key;
4779     unsigned int   alpha;
4780     unsigned int   flags;
4781     char __pad_20[4];
4782 };
4783
4784
4785
4786 struct set_window_layered_info_request
4787 {
4788     struct request_header __header;
4789     user_handle_t  handle;
4790     unsigned int   color_key;
4791     unsigned int   alpha;
4792     unsigned int   flags;
4793     char __pad_28[4];
4794 };
4795 struct set_window_layered_info_reply
4796 {
4797     struct reply_header __header;
4798 };
4799
4800
4801
4802 struct alloc_user_handle_request
4803 {
4804     struct request_header __header;
4805     char __pad_12[4];
4806 };
4807 struct alloc_user_handle_reply
4808 {
4809     struct reply_header __header;
4810     user_handle_t  handle;
4811     char __pad_12[4];
4812 };
4813
4814
4815
4816 struct free_user_handle_request
4817 {
4818     struct request_header __header;
4819     user_handle_t  handle;
4820 };
4821 struct free_user_handle_reply
4822 {
4823     struct reply_header __header;
4824 };
4825
4826
4827
4828 struct set_cursor_request
4829 {
4830     struct request_header __header;
4831     unsigned int   flags;
4832     user_handle_t  handle;
4833     int            show_count;
4834     int            x;
4835     int            y;
4836     rectangle_t    clip;
4837     unsigned int   clip_msg;
4838     char __pad_52[4];
4839 };
4840 struct set_cursor_reply
4841 {
4842     struct reply_header __header;
4843     user_handle_t  prev_handle;
4844     int            prev_count;
4845     int            prev_x;
4846     int            prev_y;
4847     int            new_x;
4848     int            new_y;
4849     rectangle_t    new_clip;
4850     unsigned int   last_change;
4851     char __pad_52[4];
4852 };
4853 #define SET_CURSOR_HANDLE 0x01
4854 #define SET_CURSOR_COUNT  0x02
4855 #define SET_CURSOR_POS    0x04
4856 #define SET_CURSOR_CLIP   0x08
4857 #define SET_CURSOR_NOCLIP 0x10
4858
4859
4860
4861 struct get_suspend_context_request
4862 {
4863     struct request_header __header;
4864     char __pad_12[4];
4865 };
4866 struct get_suspend_context_reply
4867 {
4868     struct reply_header __header;
4869     /* VARARG(context,context); */
4870 };
4871
4872
4873
4874 struct set_suspend_context_request
4875 {
4876     struct request_header __header;
4877     /* VARARG(context,context); */
4878     char __pad_12[4];
4879 };
4880 struct set_suspend_context_reply
4881 {
4882     struct reply_header __header;
4883 };
4884
4885
4886 enum request
4887 {
4888     REQ_new_process,
4889     REQ_get_new_process_info,
4890     REQ_new_thread,
4891     REQ_get_startup_info,
4892     REQ_init_process_done,
4893     REQ_init_thread,
4894     REQ_terminate_process,
4895     REQ_terminate_thread,
4896     REQ_get_process_info,
4897     REQ_set_process_info,
4898     REQ_get_thread_info,
4899     REQ_set_thread_info,
4900     REQ_get_dll_info,
4901     REQ_suspend_thread,
4902     REQ_resume_thread,
4903     REQ_load_dll,
4904     REQ_unload_dll,
4905     REQ_queue_apc,
4906     REQ_get_apc_result,
4907     REQ_close_handle,
4908     REQ_set_handle_info,
4909     REQ_dup_handle,
4910     REQ_open_process,
4911     REQ_open_thread,
4912     REQ_select,
4913     REQ_create_event,
4914     REQ_event_op,
4915     REQ_open_event,
4916     REQ_create_mutex,
4917     REQ_release_mutex,
4918     REQ_open_mutex,
4919     REQ_create_semaphore,
4920     REQ_release_semaphore,
4921     REQ_open_semaphore,
4922     REQ_create_file,
4923     REQ_open_file_object,
4924     REQ_alloc_file_handle,
4925     REQ_get_handle_unix_name,
4926     REQ_get_handle_fd,
4927     REQ_flush_file,
4928     REQ_lock_file,
4929     REQ_unlock_file,
4930     REQ_create_socket,
4931     REQ_accept_socket,
4932     REQ_accept_into_socket,
4933     REQ_set_socket_event,
4934     REQ_get_socket_event,
4935     REQ_enable_socket_event,
4936     REQ_set_socket_deferred,
4937     REQ_alloc_console,
4938     REQ_free_console,
4939     REQ_get_console_renderer_events,
4940     REQ_open_console,
4941     REQ_get_console_wait_event,
4942     REQ_get_console_mode,
4943     REQ_set_console_mode,
4944     REQ_set_console_input_info,
4945     REQ_get_console_input_info,
4946     REQ_append_console_input_history,
4947     REQ_get_console_input_history,
4948     REQ_create_console_output,
4949     REQ_set_console_output_info,
4950     REQ_get_console_output_info,
4951     REQ_write_console_input,
4952     REQ_read_console_input,
4953     REQ_write_console_output,
4954     REQ_fill_console_output,
4955     REQ_read_console_output,
4956     REQ_move_console_output,
4957     REQ_send_console_signal,
4958     REQ_read_directory_changes,
4959     REQ_read_change,
4960     REQ_create_mapping,
4961     REQ_open_mapping,
4962     REQ_get_mapping_info,
4963     REQ_get_mapping_committed_range,
4964     REQ_add_mapping_committed_range,
4965     REQ_create_snapshot,
4966     REQ_next_process,
4967     REQ_next_thread,
4968     REQ_wait_debug_event,
4969     REQ_queue_exception_event,
4970     REQ_get_exception_status,
4971     REQ_output_debug_string,
4972     REQ_continue_debug_event,
4973     REQ_debug_process,
4974     REQ_debug_break,
4975     REQ_set_debugger_kill_on_exit,
4976     REQ_read_process_memory,
4977     REQ_write_process_memory,
4978     REQ_create_key,
4979     REQ_open_key,
4980     REQ_delete_key,
4981     REQ_flush_key,
4982     REQ_enum_key,
4983     REQ_set_key_value,
4984     REQ_get_key_value,
4985     REQ_enum_key_value,
4986     REQ_delete_key_value,
4987     REQ_load_registry,
4988     REQ_unload_registry,
4989     REQ_save_registry,
4990     REQ_set_registry_notification,
4991     REQ_create_timer,
4992     REQ_open_timer,
4993     REQ_set_timer,
4994     REQ_cancel_timer,
4995     REQ_get_timer_info,
4996     REQ_get_thread_context,
4997     REQ_set_thread_context,
4998     REQ_get_selector_entry,
4999     REQ_add_atom,
5000     REQ_delete_atom,
5001     REQ_find_atom,
5002     REQ_get_atom_information,
5003     REQ_set_atom_information,
5004     REQ_empty_atom_table,
5005     REQ_init_atom_table,
5006     REQ_get_msg_queue,
5007     REQ_set_queue_fd,
5008     REQ_set_queue_mask,
5009     REQ_get_queue_status,
5010     REQ_get_process_idle_event,
5011     REQ_send_message,
5012     REQ_post_quit_message,
5013     REQ_send_hardware_message,
5014     REQ_get_message,
5015     REQ_reply_message,
5016     REQ_accept_hardware_message,
5017     REQ_get_message_reply,
5018     REQ_set_win_timer,
5019     REQ_kill_win_timer,
5020     REQ_is_window_hung,
5021     REQ_get_serial_info,
5022     REQ_set_serial_info,
5023     REQ_register_async,
5024     REQ_cancel_async,
5025     REQ_ioctl,
5026     REQ_get_ioctl_result,
5027     REQ_create_named_pipe,
5028     REQ_get_named_pipe_info,
5029     REQ_create_window,
5030     REQ_destroy_window,
5031     REQ_get_desktop_window,
5032     REQ_set_window_owner,
5033     REQ_get_window_info,
5034     REQ_set_window_info,
5035     REQ_set_parent,
5036     REQ_get_window_parents,
5037     REQ_get_window_children,
5038     REQ_get_window_children_from_point,
5039     REQ_get_window_tree,
5040     REQ_set_window_pos,
5041     REQ_get_window_rectangles,
5042     REQ_get_window_text,
5043     REQ_set_window_text,
5044     REQ_get_windows_offset,
5045     REQ_get_visible_region,
5046     REQ_get_window_region,
5047     REQ_set_window_region,
5048     REQ_get_update_region,
5049     REQ_update_window_zorder,
5050     REQ_redraw_window,
5051     REQ_set_window_property,
5052     REQ_remove_window_property,
5053     REQ_get_window_property,
5054     REQ_get_window_properties,
5055     REQ_create_winstation,
5056     REQ_open_winstation,
5057     REQ_close_winstation,
5058     REQ_get_process_winstation,
5059     REQ_set_process_winstation,
5060     REQ_enum_winstation,
5061     REQ_create_desktop,
5062     REQ_open_desktop,
5063     REQ_close_desktop,
5064     REQ_get_thread_desktop,
5065     REQ_set_thread_desktop,
5066     REQ_enum_desktop,
5067     REQ_set_user_object_info,
5068     REQ_register_hotkey,
5069     REQ_unregister_hotkey,
5070     REQ_attach_thread_input,
5071     REQ_get_thread_input,
5072     REQ_get_last_input_time,
5073     REQ_get_key_state,
5074     REQ_set_key_state,
5075     REQ_set_foreground_window,
5076     REQ_set_focus_window,
5077     REQ_set_active_window,
5078     REQ_set_capture_window,
5079     REQ_set_caret_window,
5080     REQ_set_caret_info,
5081     REQ_set_hook,
5082     REQ_remove_hook,
5083     REQ_start_hook_chain,
5084     REQ_finish_hook_chain,
5085     REQ_get_hook_info,
5086     REQ_create_class,
5087     REQ_destroy_class,
5088     REQ_set_class_info,
5089     REQ_set_clipboard_info,
5090     REQ_open_token,
5091     REQ_set_global_windows,
5092     REQ_adjust_token_privileges,
5093     REQ_get_token_privileges,
5094     REQ_check_token_privileges,
5095     REQ_duplicate_token,
5096     REQ_access_check,
5097     REQ_get_token_sid,
5098     REQ_get_token_groups,
5099     REQ_get_token_default_dacl,
5100     REQ_set_token_default_dacl,
5101     REQ_set_security_object,
5102     REQ_get_security_object,
5103     REQ_create_mailslot,
5104     REQ_set_mailslot_info,
5105     REQ_create_directory,
5106     REQ_open_directory,
5107     REQ_get_directory_entry,
5108     REQ_create_symlink,
5109     REQ_open_symlink,
5110     REQ_query_symlink,
5111     REQ_get_object_info,
5112     REQ_unlink_object,
5113     REQ_get_token_impersonation_level,
5114     REQ_allocate_locally_unique_id,
5115     REQ_create_device_manager,
5116     REQ_create_device,
5117     REQ_delete_device,
5118     REQ_get_next_device_request,
5119     REQ_make_process_system,
5120     REQ_get_token_statistics,
5121     REQ_create_completion,
5122     REQ_open_completion,
5123     REQ_add_completion,
5124     REQ_remove_completion,
5125     REQ_query_completion,
5126     REQ_set_completion_info,
5127     REQ_add_fd_completion,
5128     REQ_get_window_layered_info,
5129     REQ_set_window_layered_info,
5130     REQ_alloc_user_handle,
5131     REQ_free_user_handle,
5132     REQ_set_cursor,
5133     REQ_get_suspend_context,
5134     REQ_set_suspend_context,
5135     REQ_NB_REQUESTS
5136 };
5137
5138 union generic_request
5139 {
5140     struct request_max_size max_size;
5141     struct request_header request_header;
5142     struct new_process_request new_process_request;
5143     struct get_new_process_info_request get_new_process_info_request;
5144     struct new_thread_request new_thread_request;
5145     struct get_startup_info_request get_startup_info_request;
5146     struct init_process_done_request init_process_done_request;
5147     struct init_thread_request init_thread_request;
5148     struct terminate_process_request terminate_process_request;
5149     struct terminate_thread_request terminate_thread_request;
5150     struct get_process_info_request get_process_info_request;
5151     struct set_process_info_request set_process_info_request;
5152     struct get_thread_info_request get_thread_info_request;
5153     struct set_thread_info_request set_thread_info_request;
5154     struct get_dll_info_request get_dll_info_request;
5155     struct suspend_thread_request suspend_thread_request;
5156     struct resume_thread_request resume_thread_request;
5157     struct load_dll_request load_dll_request;
5158     struct unload_dll_request unload_dll_request;
5159     struct queue_apc_request queue_apc_request;
5160     struct get_apc_result_request get_apc_result_request;
5161     struct close_handle_request close_handle_request;
5162     struct set_handle_info_request set_handle_info_request;
5163     struct dup_handle_request dup_handle_request;
5164     struct open_process_request open_process_request;
5165     struct open_thread_request open_thread_request;
5166     struct select_request select_request;
5167     struct create_event_request create_event_request;
5168     struct event_op_request event_op_request;
5169     struct open_event_request open_event_request;
5170     struct create_mutex_request create_mutex_request;
5171     struct release_mutex_request release_mutex_request;
5172     struct open_mutex_request open_mutex_request;
5173     struct create_semaphore_request create_semaphore_request;
5174     struct release_semaphore_request release_semaphore_request;
5175     struct open_semaphore_request open_semaphore_request;
5176     struct create_file_request create_file_request;
5177     struct open_file_object_request open_file_object_request;
5178     struct alloc_file_handle_request alloc_file_handle_request;
5179     struct get_handle_unix_name_request get_handle_unix_name_request;
5180     struct get_handle_fd_request get_handle_fd_request;
5181     struct flush_file_request flush_file_request;
5182     struct lock_file_request lock_file_request;
5183     struct unlock_file_request unlock_file_request;
5184     struct create_socket_request create_socket_request;
5185     struct accept_socket_request accept_socket_request;
5186     struct accept_into_socket_request accept_into_socket_request;
5187     struct set_socket_event_request set_socket_event_request;
5188     struct get_socket_event_request get_socket_event_request;
5189     struct enable_socket_event_request enable_socket_event_request;
5190     struct set_socket_deferred_request set_socket_deferred_request;
5191     struct alloc_console_request alloc_console_request;
5192     struct free_console_request free_console_request;
5193     struct get_console_renderer_events_request get_console_renderer_events_request;
5194     struct open_console_request open_console_request;
5195     struct get_console_wait_event_request get_console_wait_event_request;
5196     struct get_console_mode_request get_console_mode_request;
5197     struct set_console_mode_request set_console_mode_request;
5198     struct set_console_input_info_request set_console_input_info_request;
5199     struct get_console_input_info_request get_console_input_info_request;
5200     struct append_console_input_history_request append_console_input_history_request;
5201     struct get_console_input_history_request get_console_input_history_request;
5202     struct create_console_output_request create_console_output_request;
5203     struct set_console_output_info_request set_console_output_info_request;
5204     struct get_console_output_info_request get_console_output_info_request;
5205     struct write_console_input_request write_console_input_request;
5206     struct read_console_input_request read_console_input_request;
5207     struct write_console_output_request write_console_output_request;
5208     struct fill_console_output_request fill_console_output_request;
5209     struct read_console_output_request read_console_output_request;
5210     struct move_console_output_request move_console_output_request;
5211     struct send_console_signal_request send_console_signal_request;
5212     struct read_directory_changes_request read_directory_changes_request;
5213     struct read_change_request read_change_request;
5214     struct create_mapping_request create_mapping_request;
5215     struct open_mapping_request open_mapping_request;
5216     struct get_mapping_info_request get_mapping_info_request;
5217     struct get_mapping_committed_range_request get_mapping_committed_range_request;
5218     struct add_mapping_committed_range_request add_mapping_committed_range_request;
5219     struct create_snapshot_request create_snapshot_request;
5220     struct next_process_request next_process_request;
5221     struct next_thread_request next_thread_request;
5222     struct wait_debug_event_request wait_debug_event_request;
5223     struct queue_exception_event_request queue_exception_event_request;
5224     struct get_exception_status_request get_exception_status_request;
5225     struct output_debug_string_request output_debug_string_request;
5226     struct continue_debug_event_request continue_debug_event_request;
5227     struct debug_process_request debug_process_request;
5228     struct debug_break_request debug_break_request;
5229     struct set_debugger_kill_on_exit_request set_debugger_kill_on_exit_request;
5230     struct read_process_memory_request read_process_memory_request;
5231     struct write_process_memory_request write_process_memory_request;
5232     struct create_key_request create_key_request;
5233     struct open_key_request open_key_request;
5234     struct delete_key_request delete_key_request;
5235     struct flush_key_request flush_key_request;
5236     struct enum_key_request enum_key_request;
5237     struct set_key_value_request set_key_value_request;
5238     struct get_key_value_request get_key_value_request;
5239     struct enum_key_value_request enum_key_value_request;
5240     struct delete_key_value_request delete_key_value_request;
5241     struct load_registry_request load_registry_request;
5242     struct unload_registry_request unload_registry_request;
5243     struct save_registry_request save_registry_request;
5244     struct set_registry_notification_request set_registry_notification_request;
5245     struct create_timer_request create_timer_request;
5246     struct open_timer_request open_timer_request;
5247     struct set_timer_request set_timer_request;
5248     struct cancel_timer_request cancel_timer_request;
5249     struct get_timer_info_request get_timer_info_request;
5250     struct get_thread_context_request get_thread_context_request;
5251     struct set_thread_context_request set_thread_context_request;
5252     struct get_selector_entry_request get_selector_entry_request;
5253     struct add_atom_request add_atom_request;
5254     struct delete_atom_request delete_atom_request;
5255     struct find_atom_request find_atom_request;
5256     struct get_atom_information_request get_atom_information_request;
5257     struct set_atom_information_request set_atom_information_request;
5258     struct empty_atom_table_request empty_atom_table_request;
5259     struct init_atom_table_request init_atom_table_request;
5260     struct get_msg_queue_request get_msg_queue_request;
5261     struct set_queue_fd_request set_queue_fd_request;
5262     struct set_queue_mask_request set_queue_mask_request;
5263     struct get_queue_status_request get_queue_status_request;
5264     struct get_process_idle_event_request get_process_idle_event_request;
5265     struct send_message_request send_message_request;
5266     struct post_quit_message_request post_quit_message_request;
5267     struct send_hardware_message_request send_hardware_message_request;
5268     struct get_message_request get_message_request;
5269     struct reply_message_request reply_message_request;
5270     struct accept_hardware_message_request accept_hardware_message_request;
5271     struct get_message_reply_request get_message_reply_request;
5272     struct set_win_timer_request set_win_timer_request;
5273     struct kill_win_timer_request kill_win_timer_request;
5274     struct is_window_hung_request is_window_hung_request;
5275     struct get_serial_info_request get_serial_info_request;
5276     struct set_serial_info_request set_serial_info_request;
5277     struct register_async_request register_async_request;
5278     struct cancel_async_request cancel_async_request;
5279     struct ioctl_request ioctl_request;
5280     struct get_ioctl_result_request get_ioctl_result_request;
5281     struct create_named_pipe_request create_named_pipe_request;
5282     struct get_named_pipe_info_request get_named_pipe_info_request;
5283     struct create_window_request create_window_request;
5284     struct destroy_window_request destroy_window_request;
5285     struct get_desktop_window_request get_desktop_window_request;
5286     struct set_window_owner_request set_window_owner_request;
5287     struct get_window_info_request get_window_info_request;
5288     struct set_window_info_request set_window_info_request;
5289     struct set_parent_request set_parent_request;
5290     struct get_window_parents_request get_window_parents_request;
5291     struct get_window_children_request get_window_children_request;
5292     struct get_window_children_from_point_request get_window_children_from_point_request;
5293     struct get_window_tree_request get_window_tree_request;
5294     struct set_window_pos_request set_window_pos_request;
5295     struct get_window_rectangles_request get_window_rectangles_request;
5296     struct get_window_text_request get_window_text_request;
5297     struct set_window_text_request set_window_text_request;
5298     struct get_windows_offset_request get_windows_offset_request;
5299     struct get_visible_region_request get_visible_region_request;
5300     struct get_window_region_request get_window_region_request;
5301     struct set_window_region_request set_window_region_request;
5302     struct get_update_region_request get_update_region_request;
5303     struct update_window_zorder_request update_window_zorder_request;
5304     struct redraw_window_request redraw_window_request;
5305     struct set_window_property_request set_window_property_request;
5306     struct remove_window_property_request remove_window_property_request;
5307     struct get_window_property_request get_window_property_request;
5308     struct get_window_properties_request get_window_properties_request;
5309     struct create_winstation_request create_winstation_request;
5310     struct open_winstation_request open_winstation_request;
5311     struct close_winstation_request close_winstation_request;
5312     struct get_process_winstation_request get_process_winstation_request;
5313     struct set_process_winstation_request set_process_winstation_request;
5314     struct enum_winstation_request enum_winstation_request;
5315     struct create_desktop_request create_desktop_request;
5316     struct open_desktop_request open_desktop_request;
5317     struct close_desktop_request close_desktop_request;
5318     struct get_thread_desktop_request get_thread_desktop_request;
5319     struct set_thread_desktop_request set_thread_desktop_request;
5320     struct enum_desktop_request enum_desktop_request;
5321     struct set_user_object_info_request set_user_object_info_request;
5322     struct register_hotkey_request register_hotkey_request;
5323     struct unregister_hotkey_request unregister_hotkey_request;
5324     struct attach_thread_input_request attach_thread_input_request;
5325     struct get_thread_input_request get_thread_input_request;
5326     struct get_last_input_time_request get_last_input_time_request;
5327     struct get_key_state_request get_key_state_request;
5328     struct set_key_state_request set_key_state_request;
5329     struct set_foreground_window_request set_foreground_window_request;
5330     struct set_focus_window_request set_focus_window_request;
5331     struct set_active_window_request set_active_window_request;
5332     struct set_capture_window_request set_capture_window_request;
5333     struct set_caret_window_request set_caret_window_request;
5334     struct set_caret_info_request set_caret_info_request;
5335     struct set_hook_request set_hook_request;
5336     struct remove_hook_request remove_hook_request;
5337     struct start_hook_chain_request start_hook_chain_request;
5338     struct finish_hook_chain_request finish_hook_chain_request;
5339     struct get_hook_info_request get_hook_info_request;
5340     struct create_class_request create_class_request;
5341     struct destroy_class_request destroy_class_request;
5342     struct set_class_info_request set_class_info_request;
5343     struct set_clipboard_info_request set_clipboard_info_request;
5344     struct open_token_request open_token_request;
5345     struct set_global_windows_request set_global_windows_request;
5346     struct adjust_token_privileges_request adjust_token_privileges_request;
5347     struct get_token_privileges_request get_token_privileges_request;
5348     struct check_token_privileges_request check_token_privileges_request;
5349     struct duplicate_token_request duplicate_token_request;
5350     struct access_check_request access_check_request;
5351     struct get_token_sid_request get_token_sid_request;
5352     struct get_token_groups_request get_token_groups_request;
5353     struct get_token_default_dacl_request get_token_default_dacl_request;
5354     struct set_token_default_dacl_request set_token_default_dacl_request;
5355     struct set_security_object_request set_security_object_request;
5356     struct get_security_object_request get_security_object_request;
5357     struct create_mailslot_request create_mailslot_request;
5358     struct set_mailslot_info_request set_mailslot_info_request;
5359     struct create_directory_request create_directory_request;
5360     struct open_directory_request open_directory_request;
5361     struct get_directory_entry_request get_directory_entry_request;
5362     struct create_symlink_request create_symlink_request;
5363     struct open_symlink_request open_symlink_request;
5364     struct query_symlink_request query_symlink_request;
5365     struct get_object_info_request get_object_info_request;
5366     struct unlink_object_request unlink_object_request;
5367     struct get_token_impersonation_level_request get_token_impersonation_level_request;
5368     struct allocate_locally_unique_id_request allocate_locally_unique_id_request;
5369     struct create_device_manager_request create_device_manager_request;
5370     struct create_device_request create_device_request;
5371     struct delete_device_request delete_device_request;
5372     struct get_next_device_request_request get_next_device_request_request;
5373     struct make_process_system_request make_process_system_request;
5374     struct get_token_statistics_request get_token_statistics_request;
5375     struct create_completion_request create_completion_request;
5376     struct open_completion_request open_completion_request;
5377     struct add_completion_request add_completion_request;
5378     struct remove_completion_request remove_completion_request;
5379     struct query_completion_request query_completion_request;
5380     struct set_completion_info_request set_completion_info_request;
5381     struct add_fd_completion_request add_fd_completion_request;
5382     struct get_window_layered_info_request get_window_layered_info_request;
5383     struct set_window_layered_info_request set_window_layered_info_request;
5384     struct alloc_user_handle_request alloc_user_handle_request;
5385     struct free_user_handle_request free_user_handle_request;
5386     struct set_cursor_request set_cursor_request;
5387     struct get_suspend_context_request get_suspend_context_request;
5388     struct set_suspend_context_request set_suspend_context_request;
5389 };
5390 union generic_reply
5391 {
5392     struct request_max_size max_size;
5393     struct reply_header reply_header;
5394     struct new_process_reply new_process_reply;
5395     struct get_new_process_info_reply get_new_process_info_reply;
5396     struct new_thread_reply new_thread_reply;
5397     struct get_startup_info_reply get_startup_info_reply;
5398     struct init_process_done_reply init_process_done_reply;
5399     struct init_thread_reply init_thread_reply;
5400     struct terminate_process_reply terminate_process_reply;
5401     struct terminate_thread_reply terminate_thread_reply;
5402     struct get_process_info_reply get_process_info_reply;
5403     struct set_process_info_reply set_process_info_reply;
5404     struct get_thread_info_reply get_thread_info_reply;
5405     struct set_thread_info_reply set_thread_info_reply;
5406     struct get_dll_info_reply get_dll_info_reply;
5407     struct suspend_thread_reply suspend_thread_reply;
5408     struct resume_thread_reply resume_thread_reply;
5409     struct load_dll_reply load_dll_reply;
5410     struct unload_dll_reply unload_dll_reply;
5411     struct queue_apc_reply queue_apc_reply;
5412     struct get_apc_result_reply get_apc_result_reply;
5413     struct close_handle_reply close_handle_reply;
5414     struct set_handle_info_reply set_handle_info_reply;
5415     struct dup_handle_reply dup_handle_reply;
5416     struct open_process_reply open_process_reply;
5417     struct open_thread_reply open_thread_reply;
5418     struct select_reply select_reply;
5419     struct create_event_reply create_event_reply;
5420     struct event_op_reply event_op_reply;
5421     struct open_event_reply open_event_reply;
5422     struct create_mutex_reply create_mutex_reply;
5423     struct release_mutex_reply release_mutex_reply;
5424     struct open_mutex_reply open_mutex_reply;
5425     struct create_semaphore_reply create_semaphore_reply;
5426     struct release_semaphore_reply release_semaphore_reply;
5427     struct open_semaphore_reply open_semaphore_reply;
5428     struct create_file_reply create_file_reply;
5429     struct open_file_object_reply open_file_object_reply;
5430     struct alloc_file_handle_reply alloc_file_handle_reply;
5431     struct get_handle_unix_name_reply get_handle_unix_name_reply;
5432     struct get_handle_fd_reply get_handle_fd_reply;
5433     struct flush_file_reply flush_file_reply;
5434     struct lock_file_reply lock_file_reply;
5435     struct unlock_file_reply unlock_file_reply;
5436     struct create_socket_reply create_socket_reply;
5437     struct accept_socket_reply accept_socket_reply;
5438     struct accept_into_socket_reply accept_into_socket_reply;
5439     struct set_socket_event_reply set_socket_event_reply;
5440     struct get_socket_event_reply get_socket_event_reply;
5441     struct enable_socket_event_reply enable_socket_event_reply;
5442     struct set_socket_deferred_reply set_socket_deferred_reply;
5443     struct alloc_console_reply alloc_console_reply;
5444     struct free_console_reply free_console_reply;
5445     struct get_console_renderer_events_reply get_console_renderer_events_reply;
5446     struct open_console_reply open_console_reply;
5447     struct get_console_wait_event_reply get_console_wait_event_reply;
5448     struct get_console_mode_reply get_console_mode_reply;
5449     struct set_console_mode_reply set_console_mode_reply;
5450     struct set_console_input_info_reply set_console_input_info_reply;
5451     struct get_console_input_info_reply get_console_input_info_reply;
5452     struct append_console_input_history_reply append_console_input_history_reply;
5453     struct get_console_input_history_reply get_console_input_history_reply;
5454     struct create_console_output_reply create_console_output_reply;
5455     struct set_console_output_info_reply set_console_output_info_reply;
5456     struct get_console_output_info_reply get_console_output_info_reply;
5457     struct write_console_input_reply write_console_input_reply;
5458     struct read_console_input_reply read_console_input_reply;
5459     struct write_console_output_reply write_console_output_reply;
5460     struct fill_console_output_reply fill_console_output_reply;
5461     struct read_console_output_reply read_console_output_reply;
5462     struct move_console_output_reply move_console_output_reply;
5463     struct send_console_signal_reply send_console_signal_reply;
5464     struct read_directory_changes_reply read_directory_changes_reply;
5465     struct read_change_reply read_change_reply;
5466     struct create_mapping_reply create_mapping_reply;
5467     struct open_mapping_reply open_mapping_reply;
5468     struct get_mapping_info_reply get_mapping_info_reply;
5469     struct get_mapping_committed_range_reply get_mapping_committed_range_reply;
5470     struct add_mapping_committed_range_reply add_mapping_committed_range_reply;
5471     struct create_snapshot_reply create_snapshot_reply;
5472     struct next_process_reply next_process_reply;
5473     struct next_thread_reply next_thread_reply;
5474     struct wait_debug_event_reply wait_debug_event_reply;
5475     struct queue_exception_event_reply queue_exception_event_reply;
5476     struct get_exception_status_reply get_exception_status_reply;
5477     struct output_debug_string_reply output_debug_string_reply;
5478     struct continue_debug_event_reply continue_debug_event_reply;
5479     struct debug_process_reply debug_process_reply;
5480     struct debug_break_reply debug_break_reply;
5481     struct set_debugger_kill_on_exit_reply set_debugger_kill_on_exit_reply;
5482     struct read_process_memory_reply read_process_memory_reply;
5483     struct write_process_memory_reply write_process_memory_reply;
5484     struct create_key_reply create_key_reply;
5485     struct open_key_reply open_key_reply;
5486     struct delete_key_reply delete_key_reply;
5487     struct flush_key_reply flush_key_reply;
5488     struct enum_key_reply enum_key_reply;
5489     struct set_key_value_reply set_key_value_reply;
5490     struct get_key_value_reply get_key_value_reply;
5491     struct enum_key_value_reply enum_key_value_reply;
5492     struct delete_key_value_reply delete_key_value_reply;
5493     struct load_registry_reply load_registry_reply;
5494     struct unload_registry_reply unload_registry_reply;
5495     struct save_registry_reply save_registry_reply;
5496     struct set_registry_notification_reply set_registry_notification_reply;
5497     struct create_timer_reply create_timer_reply;
5498     struct open_timer_reply open_timer_reply;
5499     struct set_timer_reply set_timer_reply;
5500     struct cancel_timer_reply cancel_timer_reply;
5501     struct get_timer_info_reply get_timer_info_reply;
5502     struct get_thread_context_reply get_thread_context_reply;
5503     struct set_thread_context_reply set_thread_context_reply;
5504     struct get_selector_entry_reply get_selector_entry_reply;
5505     struct add_atom_reply add_atom_reply;
5506     struct delete_atom_reply delete_atom_reply;
5507     struct find_atom_reply find_atom_reply;
5508     struct get_atom_information_reply get_atom_information_reply;
5509     struct set_atom_information_reply set_atom_information_reply;
5510     struct empty_atom_table_reply empty_atom_table_reply;
5511     struct init_atom_table_reply init_atom_table_reply;
5512     struct get_msg_queue_reply get_msg_queue_reply;
5513     struct set_queue_fd_reply set_queue_fd_reply;
5514     struct set_queue_mask_reply set_queue_mask_reply;
5515     struct get_queue_status_reply get_queue_status_reply;
5516     struct get_process_idle_event_reply get_process_idle_event_reply;
5517     struct send_message_reply send_message_reply;
5518     struct post_quit_message_reply post_quit_message_reply;
5519     struct send_hardware_message_reply send_hardware_message_reply;
5520     struct get_message_reply get_message_reply;
5521     struct reply_message_reply reply_message_reply;
5522     struct accept_hardware_message_reply accept_hardware_message_reply;
5523     struct get_message_reply_reply get_message_reply_reply;
5524     struct set_win_timer_reply set_win_timer_reply;
5525     struct kill_win_timer_reply kill_win_timer_reply;
5526     struct is_window_hung_reply is_window_hung_reply;
5527     struct get_serial_info_reply get_serial_info_reply;
5528     struct set_serial_info_reply set_serial_info_reply;
5529     struct register_async_reply register_async_reply;
5530     struct cancel_async_reply cancel_async_reply;
5531     struct ioctl_reply ioctl_reply;
5532     struct get_ioctl_result_reply get_ioctl_result_reply;
5533     struct create_named_pipe_reply create_named_pipe_reply;
5534     struct get_named_pipe_info_reply get_named_pipe_info_reply;
5535     struct create_window_reply create_window_reply;
5536     struct destroy_window_reply destroy_window_reply;
5537     struct get_desktop_window_reply get_desktop_window_reply;
5538     struct set_window_owner_reply set_window_owner_reply;
5539     struct get_window_info_reply get_window_info_reply;
5540     struct set_window_info_reply set_window_info_reply;
5541     struct set_parent_reply set_parent_reply;
5542     struct get_window_parents_reply get_window_parents_reply;
5543     struct get_window_children_reply get_window_children_reply;
5544     struct get_window_children_from_point_reply get_window_children_from_point_reply;
5545     struct get_window_tree_reply get_window_tree_reply;
5546     struct set_window_pos_reply set_window_pos_reply;
5547     struct get_window_rectangles_reply get_window_rectangles_reply;
5548     struct get_window_text_reply get_window_text_reply;
5549     struct set_window_text_reply set_window_text_reply;
5550     struct get_windows_offset_reply get_windows_offset_reply;
5551     struct get_visible_region_reply get_visible_region_reply;
5552     struct get_window_region_reply get_window_region_reply;
5553     struct set_window_region_reply set_window_region_reply;
5554     struct get_update_region_reply get_update_region_reply;
5555     struct update_window_zorder_reply update_window_zorder_reply;
5556     struct redraw_window_reply redraw_window_reply;
5557     struct set_window_property_reply set_window_property_reply;
5558     struct remove_window_property_reply remove_window_property_reply;
5559     struct get_window_property_reply get_window_property_reply;
5560     struct get_window_properties_reply get_window_properties_reply;
5561     struct create_winstation_reply create_winstation_reply;
5562     struct open_winstation_reply open_winstation_reply;
5563     struct close_winstation_reply close_winstation_reply;
5564     struct get_process_winstation_reply get_process_winstation_reply;
5565     struct set_process_winstation_reply set_process_winstation_reply;
5566     struct enum_winstation_reply enum_winstation_reply;
5567     struct create_desktop_reply create_desktop_reply;
5568     struct open_desktop_reply open_desktop_reply;
5569     struct close_desktop_reply close_desktop_reply;
5570     struct get_thread_desktop_reply get_thread_desktop_reply;
5571     struct set_thread_desktop_reply set_thread_desktop_reply;
5572     struct enum_desktop_reply enum_desktop_reply;
5573     struct set_user_object_info_reply set_user_object_info_reply;
5574     struct register_hotkey_reply register_hotkey_reply;
5575     struct unregister_hotkey_reply unregister_hotkey_reply;
5576     struct attach_thread_input_reply attach_thread_input_reply;
5577     struct get_thread_input_reply get_thread_input_reply;
5578     struct get_last_input_time_reply get_last_input_time_reply;
5579     struct get_key_state_reply get_key_state_reply;
5580     struct set_key_state_reply set_key_state_reply;
5581     struct set_foreground_window_reply set_foreground_window_reply;
5582     struct set_focus_window_reply set_focus_window_reply;
5583     struct set_active_window_reply set_active_window_reply;
5584     struct set_capture_window_reply set_capture_window_reply;
5585     struct set_caret_window_reply set_caret_window_reply;
5586     struct set_caret_info_reply set_caret_info_reply;
5587     struct set_hook_reply set_hook_reply;
5588     struct remove_hook_reply remove_hook_reply;
5589     struct start_hook_chain_reply start_hook_chain_reply;
5590     struct finish_hook_chain_reply finish_hook_chain_reply;
5591     struct get_hook_info_reply get_hook_info_reply;
5592     struct create_class_reply create_class_reply;
5593     struct destroy_class_reply destroy_class_reply;
5594     struct set_class_info_reply set_class_info_reply;
5595     struct set_clipboard_info_reply set_clipboard_info_reply;
5596     struct open_token_reply open_token_reply;
5597     struct set_global_windows_reply set_global_windows_reply;
5598     struct adjust_token_privileges_reply adjust_token_privileges_reply;
5599     struct get_token_privileges_reply get_token_privileges_reply;
5600     struct check_token_privileges_reply check_token_privileges_reply;
5601     struct duplicate_token_reply duplicate_token_reply;
5602     struct access_check_reply access_check_reply;
5603     struct get_token_sid_reply get_token_sid_reply;
5604     struct get_token_groups_reply get_token_groups_reply;
5605     struct get_token_default_dacl_reply get_token_default_dacl_reply;
5606     struct set_token_default_dacl_reply set_token_default_dacl_reply;
5607     struct set_security_object_reply set_security_object_reply;
5608     struct get_security_object_reply get_security_object_reply;
5609     struct create_mailslot_reply create_mailslot_reply;
5610     struct set_mailslot_info_reply set_mailslot_info_reply;
5611     struct create_directory_reply create_directory_reply;
5612     struct open_directory_reply open_directory_reply;
5613     struct get_directory_entry_reply get_directory_entry_reply;
5614     struct create_symlink_reply create_symlink_reply;
5615     struct open_symlink_reply open_symlink_reply;
5616     struct query_symlink_reply query_symlink_reply;
5617     struct get_object_info_reply get_object_info_reply;
5618     struct unlink_object_reply unlink_object_reply;
5619     struct get_token_impersonation_level_reply get_token_impersonation_level_reply;
5620     struct allocate_locally_unique_id_reply allocate_locally_unique_id_reply;
5621     struct create_device_manager_reply create_device_manager_reply;
5622     struct create_device_reply create_device_reply;
5623     struct delete_device_reply delete_device_reply;
5624     struct get_next_device_request_reply get_next_device_request_reply;
5625     struct make_process_system_reply make_process_system_reply;
5626     struct get_token_statistics_reply get_token_statistics_reply;
5627     struct create_completion_reply create_completion_reply;
5628     struct open_completion_reply open_completion_reply;
5629     struct add_completion_reply add_completion_reply;
5630     struct remove_completion_reply remove_completion_reply;
5631     struct query_completion_reply query_completion_reply;
5632     struct set_completion_info_reply set_completion_info_reply;
5633     struct add_fd_completion_reply add_fd_completion_reply;
5634     struct get_window_layered_info_reply get_window_layered_info_reply;
5635     struct set_window_layered_info_reply set_window_layered_info_reply;
5636     struct alloc_user_handle_reply alloc_user_handle_reply;
5637     struct free_user_handle_reply free_user_handle_reply;
5638     struct set_cursor_reply set_cursor_reply;
5639     struct get_suspend_context_reply get_suspend_context_reply;
5640     struct set_suspend_context_reply set_suspend_context_reply;
5641 };
5642
5643 #define SERVER_PROTOCOL_VERSION 429
5644
5645 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */