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