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