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; } x86_64_regs;
146 struct { unsigned __int64 fir;
147 unsigned int psr; } alpha_regs;
148 struct { unsigned int iar, msr, ctr, lr, dar, dsisr, trap; } 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 };
616 struct new_thread_reply
617 {
618 struct reply_header __header;
619 thread_id_t tid;
620 obj_handle_t handle;
621 };
622
623
624
625 struct get_startup_info_request
626 {
627 struct request_header __header;
628 };
629 struct get_startup_info_reply
630 {
631 struct reply_header __header;
632 obj_handle_t exe_file;
633 data_size_t info_size;
634 /* VARARG(info,startup_info,info_size); */
635 /* VARARG(env,unicode_str); */
636 };
637
638
639
640 struct init_process_done_request
641 {
642 struct request_header __header;
643 int gui;
644 mod_handle_t module;
645 client_ptr_t ldt_copy;
646 client_ptr_t entry;
647 };
648 struct init_process_done_reply
649 {
650 struct reply_header __header;
651 };
652
653
654
655 struct init_thread_request
656 {
657 struct request_header __header;
658 int unix_pid;
659 int unix_tid;
660 int debug_level;
661 client_ptr_t teb;
662 client_ptr_t entry;
663 int reply_fd;
664 int wait_fd;
665 cpu_type_t cpu;
666 };
667 struct init_thread_reply
668 {
669 struct reply_header __header;
670 process_id_t pid;
671 thread_id_t tid;
672 timeout_t server_start;
673 data_size_t info_size;
674 int version;
675 unsigned int all_cpus;
676 char __pad_36[4];
677 };
678
679
680
681 struct terminate_process_request
682 {
683 struct request_header __header;
684 obj_handle_t handle;
685 int exit_code;
686 };
687 struct terminate_process_reply
688 {
689 struct reply_header __header;
690 int self;
691 char __pad_12[4];
692 };
693
694
695
696 struct terminate_thread_request
697 {
698 struct request_header __header;
699 obj_handle_t handle;
700 int exit_code;
701 };
702 struct terminate_thread_reply
703 {
704 struct reply_header __header;
705 int self;
706 int last;
707 };
708
709
710
711 struct get_process_info_request
712 {
713 struct request_header __header;
714 obj_handle_t handle;
715 };
716 struct get_process_info_reply
717 {
718 struct reply_header __header;
719 process_id_t pid;
720 process_id_t ppid;
721 affinity_t affinity;
722 client_ptr_t peb;
723 timeout_t start_time;
724 timeout_t end_time;
725 int exit_code;
726 int priority;
727 cpu_type_t cpu;
728 char __pad_60[4];
729 };
730
731
732
733 struct set_process_info_request
734 {
735 struct request_header __header;
736 obj_handle_t handle;
737 int mask;
738 int priority;
739 affinity_t affinity;
740 };
741 struct set_process_info_reply
742 {
743 struct reply_header __header;
744 };
745 #define SET_PROCESS_INFO_PRIORITY 0x01
746 #define SET_PROCESS_INFO_AFFINITY 0x02
747
748
749
750 struct get_thread_info_request
751 {
752 struct request_header __header;
753 obj_handle_t handle;
754 thread_id_t tid_in;
755 };
756 struct get_thread_info_reply
757 {
758 struct reply_header __header;
759 process_id_t pid;
760 thread_id_t tid;
761 client_ptr_t teb;
762 affinity_t affinity;
763 timeout_t creation_time;
764 timeout_t exit_time;
765 int exit_code;
766 int priority;
767 int last;
768 char __pad_60[4];
769 };
770
771
772
773 struct set_thread_info_request
774 {
775 struct request_header __header;
776 obj_handle_t handle;
777 int mask;
778 int priority;
779 affinity_t affinity;
780 obj_handle_t token;
781 char __pad_36[4];
782 };
783 struct set_thread_info_reply
784 {
785 struct reply_header __header;
786 };
787 #define SET_THREAD_INFO_PRIORITY 0x01
788 #define SET_THREAD_INFO_AFFINITY 0x02
789 #define SET_THREAD_INFO_TOKEN 0x04
790
791
792
793 struct get_dll_info_request
794 {
795 struct request_header __header;
796 obj_handle_t handle;
797 mod_handle_t base_address;
798 };
799 struct get_dll_info_reply
800 {
801 struct reply_header __header;
802 client_ptr_t entry_point;
803 data_size_t size;
804 data_size_t filename_len;
805 /* VARARG(filename,unicode_str); */
806 };
807
808
809
810 struct suspend_thread_request
811 {
812 struct request_header __header;
813 obj_handle_t handle;
814 };
815 struct suspend_thread_reply
816 {
817 struct reply_header __header;
818 int count;
819 char __pad_12[4];
820 };
821
822
823
824 struct resume_thread_request
825 {
826 struct request_header __header;
827 obj_handle_t handle;
828 };
829 struct resume_thread_reply
830 {
831 struct reply_header __header;
832 int count;
833 char __pad_12[4];
834 };
835
836
837
838 struct load_dll_request
839 {
840 struct request_header __header;
841 obj_handle_t handle;
842 mod_handle_t base;
843 client_ptr_t name;
844 data_size_t size;
845 int dbg_offset;
846 int dbg_size;
847 /* VARARG(filename,unicode_str); */
848 char __pad_44[4];
849 };
850 struct load_dll_reply
851 {
852 struct reply_header __header;
853 };
854
855
856
857 struct unload_dll_request
858 {
859 struct request_header __header;
860 char __pad_12[4];
861 mod_handle_t base;
862 };
863 struct unload_dll_reply
864 {
865 struct reply_header __header;
866 };
867
868
869
870 struct queue_apc_request
871 {
872 struct request_header __header;
873 obj_handle_t handle;
874 apc_call_t call;
875 };
876 struct queue_apc_reply
877 {
878 struct reply_header __header;
879 obj_handle_t handle;
880 int self;
881 };
882
883
884
885 struct get_apc_result_request
886 {
887 struct request_header __header;
888 obj_handle_t handle;
889 };
890 struct get_apc_result_reply
891 {
892 struct reply_header __header;
893 apc_result_t result;
894 };
895
896
897
898 struct close_handle_request
899 {
900 struct request_header __header;
901 obj_handle_t handle;
902 };
903 struct close_handle_reply
904 {
905 struct reply_header __header;
906 };
907
908
909
910 struct set_handle_info_request
911 {
912 struct request_header __header;
913 obj_handle_t handle;
914 int flags;
915 int mask;
916 };
917 struct set_handle_info_reply
918 {
919 struct reply_header __header;
920 int old_flags;
921 char __pad_12[4];
922 };
923
924
925
926 struct dup_handle_request
927 {
928 struct request_header __header;
929 obj_handle_t src_process;
930 obj_handle_t src_handle;
931 obj_handle_t dst_process;
932 unsigned int access;
933 unsigned int attributes;
934 unsigned int options;
935 };
936 struct dup_handle_reply
937 {
938 struct reply_header __header;
939 obj_handle_t handle;
940 int self;
941 int closed;
942 char __pad_20[4];
943 };
944 #define DUP_HANDLE_CLOSE_SOURCE DUPLICATE_CLOSE_SOURCE
945 #define DUP_HANDLE_SAME_ACCESS DUPLICATE_SAME_ACCESS
946 #define DUP_HANDLE_MAKE_GLOBAL 0x80000000
947
948
949
950 struct open_process_request
951 {
952 struct request_header __header;
953 process_id_t pid;
954 unsigned int access;
955 unsigned int attributes;
956 };
957 struct open_process_reply
958 {
959 struct reply_header __header;
960 obj_handle_t handle;
961 char __pad_12[4];
962 };
963
964
965
966 struct open_thread_request
967 {
968 struct request_header __header;
969 thread_id_t tid;
970 unsigned int access;
971 unsigned int attributes;
972 };
973 struct open_thread_reply
974 {
975 struct reply_header __header;
976 obj_handle_t handle;
977 char __pad_12[4];
978 };
979
980
981
982 struct select_request
983 {
984 struct request_header __header;
985 int flags;
986 client_ptr_t cookie;
987 obj_handle_t signal;
988 obj_handle_t prev_apc;
989 timeout_t timeout;
990 /* VARARG(result,apc_result); */
991 /* VARARG(handles,handles); */
992 };
993 struct select_reply
994 {
995 struct reply_header __header;
996 timeout_t timeout;
997 apc_call_t call;
998 obj_handle_t apc_handle;
999 char __pad_60[4];
1000 };
1001 #define SELECT_ALL 1
1002 #define SELECT_ALERTABLE 2
1003 #define SELECT_INTERRUPTIBLE 4
1004
1005
1006
1007 struct create_event_request
1008 {
1009 struct request_header __header;
1010 unsigned int access;
1011 unsigned int attributes;
1012 int manual_reset;
1013 int initial_state;
1014 /* VARARG(objattr,object_attributes); */
1015 };
1016 struct create_event_reply
1017 {
1018 struct reply_header __header;
1019 obj_handle_t handle;
1020 char __pad_12[4];
1021 };
1022
1023
1024 struct event_op_request
1025 {
1026 struct request_header __header;
1027 obj_handle_t handle;
1028 int op;
1029 char __pad_20[4];
1030 };
1031 struct event_op_reply
1032 {
1033 struct reply_header __header;
1034 };
1035 enum event_op { PULSE_EVENT, SET_EVENT, RESET_EVENT };
1036
1037
1038
1039 struct open_event_request
1040 {
1041 struct request_header __header;
1042 unsigned int access;
1043 unsigned int attributes;
1044 obj_handle_t rootdir;
1045 /* VARARG(name,unicode_str); */
1046 };
1047 struct open_event_reply
1048 {
1049 struct reply_header __header;
1050 obj_handle_t handle;
1051 char __pad_12[4];
1052 };
1053
1054
1055
1056 struct create_mutex_request
1057 {
1058 struct request_header __header;
1059 unsigned int access;
1060 unsigned int attributes;
1061 int owned;
1062 /* VARARG(objattr,object_attributes); */
1063 };
1064 struct create_mutex_reply
1065 {
1066 struct reply_header __header;
1067 obj_handle_t handle;
1068 char __pad_12[4];
1069 };
1070
1071
1072
1073 struct release_mutex_request
1074 {
1075 struct request_header __header;
1076 obj_handle_t handle;
1077 };
1078 struct release_mutex_reply
1079 {
1080 struct reply_header __header;
1081 unsigned int prev_count;
1082 char __pad_12[4];
1083 };
1084
1085
1086
1087 struct open_mutex_request
1088 {
1089 struct request_header __header;
1090 unsigned int access;
1091 unsigned int attributes;
1092 obj_handle_t rootdir;
1093 /* VARARG(name,unicode_str); */
1094 };
1095 struct open_mutex_reply
1096 {
1097 struct reply_header __header;
1098 obj_handle_t handle;
1099 char __pad_12[4];
1100 };
1101
1102
1103
1104 struct create_semaphore_request
1105 {
1106 struct request_header __header;
1107 unsigned int access;
1108 unsigned int attributes;
1109 unsigned int initial;
1110 unsigned int max;
1111 /* VARARG(objattr,object_attributes); */
1112 };
1113 struct create_semaphore_reply
1114 {
1115 struct reply_header __header;
1116 obj_handle_t handle;
1117 char __pad_12[4];
1118 };
1119
1120
1121
1122 struct release_semaphore_request
1123 {
1124 struct request_header __header;
1125 obj_handle_t handle;
1126 unsigned int count;
1127 };
1128 struct release_semaphore_reply
1129 {
1130 struct reply_header __header;
1131 unsigned int prev_count;
1132 char __pad_12[4];
1133 };
1134
1135
1136
1137 struct open_semaphore_request
1138 {
1139 struct request_header __header;
1140 unsigned int access;
1141 unsigned int attributes;
1142 obj_handle_t rootdir;
1143 /* VARARG(name,unicode_str); */
1144 };
1145 struct open_semaphore_reply
1146 {
1147 struct reply_header __header;
1148 obj_handle_t handle;
1149 char __pad_12[4];
1150 };
1151
1152
1153
1154 struct create_file_request
1155 {
1156 struct request_header __header;
1157 unsigned int access;
1158 unsigned int attributes;
1159 unsigned int sharing;
1160 int create;
1161 unsigned int options;
1162 unsigned int attrs;
1163 /* VARARG(objattr,object_attributes); */
1164 /* VARARG(filename,string); */
1165 };
1166 struct create_file_reply
1167 {
1168 struct reply_header __header;
1169 obj_handle_t handle;
1170 char __pad_12[4];
1171 };
1172
1173
1174
1175 struct open_file_object_request
1176 {
1177 struct request_header __header;
1178 unsigned int access;
1179 unsigned int attributes;
1180 obj_handle_t rootdir;
1181 unsigned int sharing;
1182 unsigned int options;
1183 /* VARARG(filename,unicode_str); */
1184 };
1185 struct open_file_object_reply
1186 {
1187 struct reply_header __header;
1188 obj_handle_t handle;
1189 char __pad_12[4];
1190 };
1191
1192
1193
1194 struct alloc_file_handle_request
1195 {
1196 struct request_header __header;
1197 unsigned int access;
1198 unsigned int attributes;
1199 int fd;
1200 };
1201 struct alloc_file_handle_reply
1202 {
1203 struct reply_header __header;
1204 obj_handle_t handle;
1205 char __pad_12[4];
1206 };
1207
1208
1209
1210 struct get_handle_unix_name_request
1211 {
1212 struct request_header __header;
1213 obj_handle_t handle;
1214 };
1215 struct get_handle_unix_name_reply
1216 {
1217 struct reply_header __header;
1218 data_size_t name_len;
1219 /* VARARG(name,string); */
1220 char __pad_12[4];
1221 };
1222
1223
1224
1225 struct get_handle_fd_request
1226 {
1227 struct request_header __header;
1228 obj_handle_t handle;
1229 };
1230 struct get_handle_fd_reply
1231 {
1232 struct reply_header __header;
1233 int type;
1234 int removable;
1235 unsigned int access;
1236 unsigned int options;
1237 };
1238 enum server_fd_type
1239 {
1240 FD_TYPE_INVALID,
1241 FD_TYPE_FILE,
1242 FD_TYPE_DIR,
1243 FD_TYPE_SOCKET,
1244 FD_TYPE_SERIAL,
1245 FD_TYPE_PIPE,
1246 FD_TYPE_MAILSLOT,
1247 FD_TYPE_CHAR,
1248 FD_TYPE_DEVICE,
1249 FD_TYPE_NB_TYPES
1250 };
1251
1252
1253
1254 struct flush_file_request
1255 {
1256 struct request_header __header;
1257 obj_handle_t handle;
1258 };
1259 struct flush_file_reply
1260 {
1261 struct reply_header __header;
1262 obj_handle_t event;
1263 char __pad_12[4];
1264 };
1265
1266
1267
1268 struct lock_file_request
1269 {
1270 struct request_header __header;
1271 obj_handle_t handle;
1272 file_pos_t offset;
1273 file_pos_t count;
1274 int shared;
1275 int wait;
1276 };
1277 struct lock_file_reply
1278 {
1279 struct reply_header __header;
1280 obj_handle_t handle;
1281 int overlapped;
1282 };
1283
1284
1285
1286 struct unlock_file_request
1287 {
1288 struct request_header __header;
1289 obj_handle_t handle;
1290 file_pos_t offset;
1291 file_pos_t count;
1292 };
1293 struct unlock_file_reply
1294 {
1295 struct reply_header __header;
1296 };
1297
1298
1299
1300 struct create_socket_request
1301 {
1302 struct request_header __header;
1303 unsigned int access;
1304 unsigned int attributes;
1305 int family;
1306 int type;
1307 int protocol;
1308 unsigned int flags;
1309 };
1310 struct create_socket_reply
1311 {
1312 struct reply_header __header;
1313 obj_handle_t handle;
1314 char __pad_12[4];
1315 };
1316
1317
1318
1319 struct accept_socket_request
1320 {
1321 struct request_header __header;
1322 obj_handle_t lhandle;
1323 unsigned int access;
1324 unsigned int attributes;
1325 };
1326 struct accept_socket_reply
1327 {
1328 struct reply_header __header;
1329 obj_handle_t handle;
1330 char __pad_12[4];
1331 };
1332
1333
1334
1335 struct set_socket_event_request
1336 {
1337 struct request_header __header;
1338 obj_handle_t handle;
1339 unsigned int mask;
1340 obj_handle_t event;
1341 user_handle_t window;
1342 unsigned int msg;
1343 };
1344 struct set_socket_event_reply
1345 {
1346 struct reply_header __header;
1347 };
1348
1349
1350
1351 struct get_socket_event_request
1352 {
1353 struct request_header __header;
1354 obj_handle_t handle;
1355 int service;
1356 obj_handle_t c_event;
1357 };
1358 struct get_socket_event_reply
1359 {
1360 struct reply_header __header;
1361 unsigned int mask;
1362 unsigned int pmask;
1363 unsigned int state;
1364 /* VARARG(errors,ints); */
1365 char __pad_20[4];
1366 };
1367
1368
1369
1370 struct enable_socket_event_request
1371 {
1372 struct request_header __header;
1373 obj_handle_t handle;
1374 unsigned int mask;
1375 unsigned int sstate;
1376 unsigned int cstate;
1377 char __pad_28[4];
1378 };
1379 struct enable_socket_event_reply
1380 {
1381 struct reply_header __header;
1382 };
1383
1384 struct set_socket_deferred_request
1385 {
1386 struct request_header __header;
1387 obj_handle_t handle;
1388 obj_handle_t deferred;
1389 char __pad_20[4];
1390 };
1391 struct set_socket_deferred_reply
1392 {
1393 struct reply_header __header;
1394 };
1395
1396
1397 struct alloc_console_request
1398 {
1399 struct request_header __header;
1400 unsigned int access;
1401 unsigned int attributes;
1402 process_id_t pid;
1403 };
1404 struct alloc_console_reply
1405 {
1406 struct reply_header __header;
1407 obj_handle_t handle_in;
1408 obj_handle_t event;
1409 };
1410
1411
1412
1413 struct free_console_request
1414 {
1415 struct request_header __header;
1416 char __pad_12[4];
1417 };
1418 struct free_console_reply
1419 {
1420 struct reply_header __header;
1421 };
1422
1423
1424 #define CONSOLE_RENDERER_NONE_EVENT 0x00
1425 #define CONSOLE_RENDERER_TITLE_EVENT 0x01
1426 #define CONSOLE_RENDERER_ACTIVE_SB_EVENT 0x02
1427 #define CONSOLE_RENDERER_SB_RESIZE_EVENT 0x03
1428 #define CONSOLE_RENDERER_UPDATE_EVENT 0x04
1429 #define CONSOLE_RENDERER_CURSOR_POS_EVENT 0x05
1430 #define CONSOLE_RENDERER_CURSOR_GEOM_EVENT 0x06
1431 #define CONSOLE_RENDERER_DISPLAY_EVENT 0x07
1432 #define CONSOLE_RENDERER_EXIT_EVENT 0x08
1433 struct console_renderer_event
1434 {
1435 short event;
1436 union
1437 {
1438 struct update
1439 {
1440 short top;
1441 short bottom;
1442 } update;
1443 struct resize
1444 {
1445 short width;
1446 short height;
1447 } resize;
1448 struct cursor_pos
1449 {
1450 short x;
1451 short y;
1452 } cursor_pos;
1453 struct cursor_geom
1454 {
1455 short visible;
1456 short size;
1457 } cursor_geom;
1458 struct display
1459 {
1460 short left;
1461 short top;
1462 short width;
1463 short height;
1464 } display;
1465 } u;
1466 };
1467
1468
1469 struct get_console_renderer_events_request
1470 {
1471 struct request_header __header;
1472 obj_handle_t handle;
1473 };
1474 struct get_console_renderer_events_reply
1475 {
1476 struct reply_header __header;
1477 /* VARARG(data,bytes); */
1478 };
1479
1480
1481
1482 struct open_console_request
1483 {
1484 struct request_header __header;
1485 obj_handle_t from;
1486
1487 unsigned int access;
1488 unsigned int attributes;
1489 int share;
1490 };
1491 struct open_console_reply
1492 {
1493 struct reply_header __header;
1494 obj_handle_t handle;
1495 char __pad_12[4];
1496 };
1497
1498
1499
1500 struct get_console_wait_event_request
1501 {
1502 struct request_header __header;
1503 };
1504 struct get_console_wait_event_reply
1505 {
1506 struct reply_header __header;
1507 obj_handle_t handle;
1508 char __pad_12[4];
1509 };
1510
1511
1512 struct get_console_mode_request
1513 {
1514 struct request_header __header;
1515 obj_handle_t handle;
1516 };
1517 struct get_console_mode_reply
1518 {
1519 struct reply_header __header;
1520 int mode;
1521 char __pad_12[4];
1522 };
1523
1524
1525
1526 struct set_console_mode_request
1527 {
1528 struct request_header __header;
1529 obj_handle_t handle;
1530 int mode;
1531 char __pad_20[4];
1532 };
1533 struct set_console_mode_reply
1534 {
1535 struct reply_header __header;
1536 };
1537
1538
1539
1540 struct set_console_input_info_request
1541 {
1542 struct request_header __header;
1543 obj_handle_t handle;
1544 int mask;
1545 obj_handle_t active_sb;
1546 int history_mode;
1547 int history_size;
1548 int edition_mode;
1549 int input_cp;
1550 int output_cp;
1551 user_handle_t win;
1552 /* VARARG(title,unicode_str); */
1553 };
1554 struct set_console_input_info_reply
1555 {
1556 struct reply_header __header;
1557 };
1558 #define SET_CONSOLE_INPUT_INFO_ACTIVE_SB 0x01
1559 #define SET_CONSOLE_INPUT_INFO_TITLE 0x02
1560 #define SET_CONSOLE_INPUT_INFO_HISTORY_MODE 0x04
1561 #define SET_CONSOLE_INPUT_INFO_HISTORY_SIZE 0x08
1562 #define SET_CONSOLE_INPUT_INFO_EDITION_MODE 0x10
1563 #define SET_CONSOLE_INPUT_INFO_INPUT_CODEPAGE 0x20
1564 #define SET_CONSOLE_INPUT_INFO_OUTPUT_CODEPAGE 0x40
1565 #define SET_CONSOLE_INPUT_INFO_WIN 0x80
1566
1567
1568
1569 struct get_console_input_info_request
1570 {
1571 struct request_header __header;
1572 obj_handle_t handle;
1573 };
1574 struct get_console_input_info_reply
1575 {
1576 struct reply_header __header;
1577 int history_mode;
1578 int history_size;
1579 int history_index;
1580 int edition_mode;
1581 int input_cp;
1582 int output_cp;
1583 user_handle_t win;
1584 /* VARARG(title,unicode_str); */
1585 char __pad_36[4];
1586 };
1587
1588
1589
1590 struct append_console_input_history_request
1591 {
1592 struct request_header __header;
1593 obj_handle_t handle;
1594 /* VARARG(line,unicode_str); */
1595 };
1596 struct append_console_input_history_reply
1597 {
1598 struct reply_header __header;
1599 };
1600
1601
1602
1603 struct get_console_input_history_request
1604 {
1605 struct request_header __header;
1606 obj_handle_t handle;
1607 int index;
1608 };
1609 struct get_console_input_history_reply
1610 {
1611 struct reply_header __header;
1612 int total;
1613 /* VARARG(line,unicode_str); */
1614 char __pad_12[4];
1615 };
1616
1617
1618
1619 struct create_console_output_request
1620 {
1621 struct request_header __header;
1622 obj_handle_t handle_in;
1623 unsigned int access;
1624 unsigned int attributes;
1625 unsigned int share;
1626 };
1627 struct create_console_output_reply
1628 {
1629 struct reply_header __header;
1630 obj_handle_t handle_out;
1631 char __pad_12[4];
1632 };
1633
1634
1635
1636 struct set_console_output_info_request
1637 {
1638 struct request_header __header;
1639 obj_handle_t handle;
1640 int mask;
1641 short int cursor_size;
1642 short int cursor_visible;
1643 short int cursor_x;
1644 short int cursor_y;
1645 short int width;
1646 short int height;
1647 short int attr;
1648 short int win_left;
1649 short int win_top;
1650 short int win_right;
1651 short int win_bottom;
1652 short int max_width;
1653 short int max_height;
1654 char __pad_46[2];
1655 };
1656 struct set_console_output_info_reply
1657 {
1658 struct reply_header __header;
1659 };
1660 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_GEOM 0x01
1661 #define SET_CONSOLE_OUTPUT_INFO_CURSOR_POS 0x02
1662 #define SET_CONSOLE_OUTPUT_INFO_SIZE 0x04
1663 #define SET_CONSOLE_OUTPUT_INFO_ATTR 0x08
1664 #define SET_CONSOLE_OUTPUT_INFO_DISPLAY_WINDOW 0x10
1665 #define SET_CONSOLE_OUTPUT_INFO_MAX_SIZE 0x20
1666
1667
1668
1669 struct get_console_output_info_request
1670 {
1671 struct request_header __header;
1672 obj_handle_t handle;
1673 };
1674 struct get_console_output_info_reply
1675 {
1676 struct reply_header __header;
1677 short int cursor_size;
1678 short int cursor_visible;
1679 short int cursor_x;
1680 short int cursor_y;
1681 short int width;
1682 short int height;
1683 short int attr;
1684 short int win_left;
1685 short int win_top;
1686 short int win_right;
1687 short int win_bottom;
1688 short int max_width;
1689 short int max_height;
1690 char __pad_34[6];
1691 };
1692
1693
1694 struct write_console_input_request
1695 {
1696 struct request_header __header;
1697 obj_handle_t handle;
1698 /* VARARG(rec,input_records); */
1699 };
1700 struct write_console_input_reply
1701 {
1702 struct reply_header __header;
1703 int written;
1704 char __pad_12[4];
1705 };
1706
1707
1708
1709 struct read_console_input_request
1710 {
1711 struct request_header __header;
1712 obj_handle_t handle;
1713 int flush;
1714 };
1715 struct read_console_input_reply
1716 {
1717 struct reply_header __header;
1718 int read;
1719 /* VARARG(rec,input_records); */
1720 char __pad_12[4];
1721 };
1722
1723
1724
1725 struct write_console_output_request
1726 {
1727 struct request_header __header;
1728 obj_handle_t handle;
1729 int x;
1730 int y;
1731 int mode;
1732 int wrap;
1733 /* VARARG(data,bytes); */
1734 };
1735 struct write_console_output_reply
1736 {
1737 struct reply_header __header;
1738 int written;
1739 int width;
1740 int height;
1741 char __pad_20[4];
1742 };
1743 enum char_info_mode
1744 {
1745 CHAR_INFO_MODE_TEXT,
1746 CHAR_INFO_MODE_ATTR,
1747 CHAR_INFO_MODE_TEXTATTR,
1748 CHAR_INFO_MODE_TEXTSTDATTR
1749 };
1750
1751
1752
1753 struct fill_console_output_request
1754 {
1755 struct request_header __header;
1756 obj_handle_t handle;
1757 int x;
1758 int y;
1759 int mode;
1760 int count;
1761 int wrap;
1762 char_info_t data;
1763 };
1764 struct fill_console_output_reply
1765 {
1766 struct reply_header __header;
1767 int written;
1768 char __pad_12[4];
1769 };
1770
1771
1772
1773 struct read_console_output_request
1774 {
1775 struct request_header __header;
1776 obj_handle_t handle;
1777 int x;
1778 int y;
1779 int mode;
1780 int wrap;
1781 };
1782 struct read_console_output_reply
1783 {
1784 struct reply_header __header;
1785 int width;
1786 int height;
1787 /* VARARG(data,bytes); */
1788 };
1789
1790
1791
1792 struct move_console_output_request
1793 {
1794 struct request_header __header;
1795 obj_handle_t handle;
1796 short int x_src;
1797 short int y_src;
1798 short int x_dst;
1799 short int y_dst;
1800 short int w;
1801 short int h;
1802 char __pad_28[4];
1803 };
1804 struct move_console_output_reply
1805 {
1806 struct reply_header __header;
1807 };
1808
1809
1810
1811 struct send_console_signal_request
1812 {
1813 struct request_header __header;
1814 int signal;
1815 process_id_t group_id;
1816 char __pad_20[4];
1817 };
1818 struct send_console_signal_reply
1819 {
1820 struct reply_header __header;
1821 };
1822
1823
1824
1825 struct read_directory_changes_request
1826 {
1827 struct request_header __header;
1828 unsigned int filter;
1829 int subtree;
1830 int want_data;
1831 async_data_t async;
1832 };
1833 struct read_directory_changes_reply
1834 {
1835 struct reply_header __header;
1836 };
1837
1838
1839 struct read_change_request
1840 {
1841 struct request_header __header;
1842 obj_handle_t handle;
1843 };
1844 struct read_change_reply
1845 {
1846 struct reply_header __header;
1847 int action;
1848 /* VARARG(name,string); */
1849 char __pad_12[4];
1850 };
1851
1852
1853
1854 struct create_mapping_request
1855 {
1856 struct request_header __header;
1857 unsigned int access;
1858 unsigned int attributes;
1859 unsigned int protect;
1860 mem_size_t size;
1861 obj_handle_t file_handle;
1862 /* VARARG(objattr,object_attributes); */
1863 };
1864 struct create_mapping_reply
1865 {
1866 struct reply_header __header;
1867 obj_handle_t handle;
1868 char __pad_12[4];
1869 };
1870
1871 #define VPROT_READ 0x01
1872 #define VPROT_WRITE 0x02
1873 #define VPROT_EXEC 0x04
1874 #define VPROT_WRITECOPY 0x08
1875 #define VPROT_GUARD 0x10
1876 #define VPROT_NOCACHE 0x20
1877 #define VPROT_COMMITTED 0x40
1878 #define VPROT_WRITEWATCH 0x80
1879
1880 #define VPROT_IMAGE 0x0100
1881 #define VPROT_SYSTEM 0x0200
1882 #define VPROT_VALLOC 0x0400
1883 #define VPROT_NOEXEC 0x0800
1884
1885
1886
1887 struct open_mapping_request
1888 {
1889 struct request_header __header;
1890 unsigned int access;
1891 unsigned int attributes;
1892 obj_handle_t rootdir;
1893 /* VARARG(name,unicode_str); */
1894 };
1895 struct open_mapping_reply
1896 {
1897 struct reply_header __header;
1898 obj_handle_t handle;
1899 char __pad_12[4];
1900 };
1901
1902
1903
1904 struct get_mapping_info_request
1905 {
1906 struct request_header __header;
1907 obj_handle_t handle;
1908 unsigned int access;
1909 };
1910 struct get_mapping_info_reply
1911 {
1912 struct reply_header __header;
1913 mem_size_t size;
1914 int protect;
1915 int header_size;
1916 client_ptr_t base;
1917 obj_handle_t mapping;
1918 obj_handle_t shared_file;
1919 };
1920
1921
1922
1923 struct get_mapping_committed_range_request
1924 {
1925 struct request_header __header;
1926 obj_handle_t handle;
1927 file_pos_t offset;
1928 };
1929 struct get_mapping_committed_range_reply
1930 {
1931 struct reply_header __header;
1932 mem_size_t size;
1933 int committed;
1934 char __pad_20[4];
1935 };
1936
1937
1938
1939 struct add_mapping_committed_range_request
1940 {
1941 struct request_header __header;
1942 obj_handle_t handle;
1943 file_pos_t offset;
1944 mem_size_t size;
1945 };
1946 struct add_mapping_committed_range_reply
1947 {
1948 struct reply_header __header;
1949 };
1950
1951
1952 #define SNAP_PROCESS 0x00000001
1953 #define SNAP_THREAD 0x00000002
1954
1955 struct create_snapshot_request
1956 {
1957 struct request_header __header;
1958 unsigned int attributes;
1959 unsigned int flags;
1960 };
1961 struct create_snapshot_reply
1962 {
1963 struct reply_header __header;
1964 obj_handle_t handle;
1965 char __pad_12[4];
1966 };
1967
1968
1969
1970 struct next_process_request
1971 {
1972 struct request_header __header;
1973 obj_handle_t handle;
1974 int reset;
1975 };
1976 struct next_process_reply
1977 {
1978 struct reply_header __header;
1979 int count;
1980 process_id_t pid;
1981 process_id_t ppid;
1982 int threads;
1983 int priority;
1984 int handles;
1985 /* VARARG(filename,unicode_str); */
1986 };
1987
1988
1989
1990 struct next_thread_request
1991 {
1992 struct request_header __header;
1993 obj_handle_t handle;
1994 int reset;
1995 };
1996 struct next_thread_reply
1997 {
1998 struct reply_header __header;
1999 int count;
2000 process_id_t pid;
2001 thread_id_t tid;
2002 int base_pri;
2003 int delta_pri;
2004 char __pad_28[4];
2005 };
2006
2007
2008
2009 struct wait_debug_event_request
2010 {
2011 struct request_header __header;
2012 int get_handle;
2013 };
2014 struct wait_debug_event_reply
2015 {
2016 struct reply_header __header;
2017 process_id_t pid;
2018 thread_id_t tid;
2019 obj_handle_t wait;
2020 /* VARARG(event,debug_event); */
2021 char __pad_20[4];
2022 };
2023
2024
2025
2026 struct queue_exception_event_request
2027 {
2028 struct request_header __header;
2029 int first;
2030 unsigned int code;
2031 unsigned int flags;
2032 client_ptr_t record;
2033 client_ptr_t address;
2034 data_size_t len;
2035 /* VARARG(params,uints64,len); */
2036 /* VARARG(context,context); */
2037 };
2038 struct queue_exception_event_reply
2039 {
2040 struct reply_header __header;
2041 obj_handle_t handle;
2042 char __pad_12[4];
2043 };
2044
2045
2046
2047 struct get_exception_status_request
2048 {
2049 struct request_header __header;
2050 obj_handle_t handle;
2051 };
2052 struct get_exception_status_reply
2053 {
2054 struct reply_header __header;
2055 /* VARARG(context,context); */
2056 };
2057
2058
2059
2060 struct output_debug_string_request
2061 {
2062 struct request_header __header;
2063 data_size_t length;
2064 client_ptr_t string;
2065 };
2066 struct output_debug_string_reply
2067 {
2068 struct reply_header __header;
2069 };
2070
2071
2072
2073 struct continue_debug_event_request
2074 {
2075 struct request_header __header;
2076 process_id_t pid;
2077 thread_id_t tid;
2078 int status;
2079 };
2080 struct continue_debug_event_reply
2081 {
2082 struct reply_header __header;
2083 };
2084
2085
2086
2087 struct debug_process_request
2088 {
2089 struct request_header __header;
2090 process_id_t pid;
2091 int attach;
2092 char __pad_20[4];
2093 };
2094 struct debug_process_reply
2095 {
2096 struct reply_header __header;
2097 };
2098
2099
2100
2101 struct debug_break_request
2102 {
2103 struct request_header __header;
2104 obj_handle_t handle;
2105 };
2106 struct debug_break_reply
2107 {
2108 struct reply_header __header;
2109 int self;
2110 char __pad_12[4];
2111 };
2112
2113
2114
2115 struct set_debugger_kill_on_exit_request
2116 {
2117 struct request_header __header;
2118 int kill_on_exit;
2119 };
2120 struct set_debugger_kill_on_exit_reply
2121 {
2122 struct reply_header __header;
2123 };
2124
2125
2126
2127 struct read_process_memory_request
2128 {
2129 struct request_header __header;
2130 obj_handle_t handle;
2131 client_ptr_t addr;
2132 };
2133 struct read_process_memory_reply
2134 {
2135 struct reply_header __header;
2136 /* VARARG(data,bytes); */
2137 };
2138
2139
2140
2141 struct write_process_memory_request
2142 {
2143 struct request_header __header;
2144 obj_handle_t handle;
2145 client_ptr_t addr;
2146 /* VARARG(data,bytes); */
2147 };
2148 struct write_process_memory_reply
2149 {
2150 struct reply_header __header;
2151 };
2152
2153
2154
2155 struct create_key_request
2156 {
2157 struct request_header __header;
2158 obj_handle_t parent;
2159 unsigned int access;
2160 unsigned int attributes;
2161 unsigned int options;
2162 data_size_t namelen;
2163 /* VARARG(name,unicode_str,namelen); */
2164 /* VARARG(class,unicode_str); */
2165 };
2166 struct create_key_reply
2167 {
2168 struct reply_header __header;
2169 obj_handle_t hkey;
2170 int created;
2171 };
2172
2173
2174 struct open_key_request
2175 {
2176 struct request_header __header;
2177 obj_handle_t parent;
2178 unsigned int access;
2179 unsigned int attributes;
2180 /* VARARG(name,unicode_str); */
2181 };
2182 struct open_key_reply
2183 {
2184 struct reply_header __header;
2185 obj_handle_t hkey;
2186 char __pad_12[4];
2187 };
2188
2189
2190
2191 struct delete_key_request
2192 {
2193 struct request_header __header;
2194 obj_handle_t hkey;
2195 };
2196 struct delete_key_reply
2197 {
2198 struct reply_header __header;
2199 };
2200
2201
2202
2203 struct flush_key_request
2204 {
2205 struct request_header __header;
2206 obj_handle_t hkey;
2207 };
2208 struct flush_key_reply
2209 {
2210 struct reply_header __header;
2211 };
2212
2213
2214
2215 struct enum_key_request
2216 {
2217 struct request_header __header;
2218 obj_handle_t hkey;
2219 int index;
2220 int info_class;
2221 };
2222 struct enum_key_reply
2223 {
2224 struct reply_header __header;
2225 int subkeys;
2226 int max_subkey;
2227 int max_class;
2228 int values;
2229 int max_value;
2230 int max_data;
2231 timeout_t modif;
2232 data_size_t total;
2233 data_size_t namelen;
2234 /* VARARG(name,unicode_str,namelen); */
2235 /* VARARG(class,unicode_str); */
2236 };
2237
2238
2239
2240 struct set_key_value_request
2241 {
2242 struct request_header __header;
2243 obj_handle_t hkey;
2244 int type;
2245 data_size_t namelen;
2246 /* VARARG(name,unicode_str,namelen); */
2247 /* VARARG(data,bytes); */
2248 };
2249 struct set_key_value_reply
2250 {
2251 struct reply_header __header;
2252 };
2253
2254
2255
2256 struct get_key_value_request
2257 {
2258 struct request_header __header;
2259 obj_handle_t hkey;
2260 /* VARARG(name,unicode_str); */
2261 };
2262 struct get_key_value_reply
2263 {
2264 struct reply_header __header;
2265 int type;
2266 data_size_t total;
2267 /* VARARG(data,bytes); */
2268 };
2269
2270
2271
2272 struct enum_key_value_request
2273 {
2274 struct request_header __header;
2275 obj_handle_t hkey;
2276 int index;
2277 int info_class;
2278 };
2279 struct enum_key_value_reply
2280 {
2281 struct reply_header __header;
2282 int type;
2283 data_size_t total;
2284 data_size_t namelen;
2285 /* VARARG(name,unicode_str,namelen); */
2286 /* VARARG(data,bytes); */
2287 char __pad_20[4];
2288 };
2289
2290
2291
2292 struct delete_key_value_request
2293 {
2294 struct request_header __header;
2295 obj_handle_t hkey;
2296 /* VARARG(name,unicode_str); */
2297 };
2298 struct delete_key_value_reply
2299 {
2300 struct reply_header __header;
2301 };
2302
2303
2304
2305 struct load_registry_request
2306 {
2307 struct request_header __header;
2308 obj_handle_t hkey;
2309 obj_handle_t file;
2310 /* VARARG(name,unicode_str); */
2311 char __pad_20[4];
2312 };
2313 struct load_registry_reply
2314 {
2315 struct reply_header __header;
2316 };
2317
2318
2319
2320 struct unload_registry_request
2321 {
2322 struct request_header __header;
2323 obj_handle_t hkey;
2324 };
2325 struct unload_registry_reply
2326 {
2327 struct reply_header __header;
2328 };
2329
2330
2331
2332 struct save_registry_request
2333 {
2334 struct request_header __header;
2335 obj_handle_t hkey;
2336 obj_handle_t file;
2337 char __pad_20[4];
2338 };
2339 struct save_registry_reply
2340 {
2341 struct reply_header __header;
2342 };
2343
2344
2345
2346 struct set_registry_notification_request
2347 {
2348 struct request_header __header;
2349 obj_handle_t hkey;
2350 obj_handle_t event;
2351 int subtree;
2352 unsigned int filter;
2353 char __pad_28[4];
2354 };
2355 struct set_registry_notification_reply
2356 {
2357 struct reply_header __header;
2358 };
2359
2360
2361
2362 struct create_timer_request
2363 {
2364 struct request_header __header;
2365 unsigned int access;
2366 unsigned int attributes;
2367 obj_handle_t rootdir;
2368 int manual;
2369 /* VARARG(name,unicode_str); */
2370 };
2371 struct create_timer_reply
2372 {
2373 struct reply_header __header;
2374 obj_handle_t handle;
2375 char __pad_12[4];
2376 };
2377
2378
2379
2380 struct open_timer_request
2381 {
2382 struct request_header __header;
2383 unsigned int access;
2384 unsigned int attributes;
2385 obj_handle_t rootdir;
2386 /* VARARG(name,unicode_str); */
2387 };
2388 struct open_timer_reply
2389 {
2390 struct reply_header __header;
2391 obj_handle_t handle;
2392 char __pad_12[4];
2393 };
2394
2395
2396 struct set_timer_request
2397 {
2398 struct request_header __header;
2399 obj_handle_t handle;
2400 timeout_t expire;
2401 client_ptr_t callback;
2402 client_ptr_t arg;
2403 int period;
2404 };
2405 struct set_timer_reply
2406 {
2407 struct reply_header __header;
2408 int signaled;
2409 char __pad_12[4];
2410 };
2411
2412
2413 struct cancel_timer_request
2414 {
2415 struct request_header __header;
2416 obj_handle_t handle;
2417 };
2418 struct cancel_timer_reply
2419 {
2420 struct reply_header __header;
2421 int signaled;
2422 char __pad_12[4];
2423 };
2424
2425
2426 struct get_timer_info_request
2427 {
2428 struct request_header __header;
2429 obj_handle_t handle;
2430 };
2431 struct get_timer_info_reply
2432 {
2433 struct reply_header __header;
2434 timeout_t when;
2435 int signaled;
2436 char __pad_20[4];
2437 };
2438
2439
2440
2441 struct get_thread_context_request
2442 {
2443 struct request_header __header;
2444 obj_handle_t handle;
2445 unsigned int flags;
2446 int suspend;
2447 };
2448 struct get_thread_context_reply
2449 {
2450 struct reply_header __header;
2451 int self;
2452 /* VARARG(context,context); */
2453 char __pad_12[4];
2454 };
2455
2456
2457
2458 struct set_thread_context_request
2459 {
2460 struct request_header __header;
2461 obj_handle_t handle;
2462 int suspend;
2463 /* VARARG(context,context); */
2464 };
2465 struct set_thread_context_reply
2466 {
2467 struct reply_header __header;
2468 int self;
2469 char __pad_12[4];
2470 };
2471
2472
2473
2474 struct get_selector_entry_request
2475 {
2476 struct request_header __header;
2477 obj_handle_t handle;
2478 int entry;
2479 };
2480 struct get_selector_entry_reply
2481 {
2482 struct reply_header __header;
2483 unsigned int base;
2484 unsigned int limit;
2485 unsigned char flags;
2486 char __pad_17[7];
2487 };
2488
2489
2490
2491 struct add_atom_request
2492 {
2493 struct request_header __header;
2494 obj_handle_t table;
2495 /* VARARG(name,unicode_str); */
2496 };
2497 struct add_atom_reply
2498 {
2499 struct reply_header __header;
2500 atom_t atom;
2501 char __pad_12[4];
2502 };
2503
2504
2505
2506 struct delete_atom_request
2507 {
2508 struct request_header __header;
2509 obj_handle_t table;
2510 atom_t atom;
2511 char __pad_20[4];
2512 };
2513 struct delete_atom_reply
2514 {
2515 struct reply_header __header;
2516 };
2517
2518
2519
2520 struct find_atom_request
2521 {
2522 struct request_header __header;
2523 obj_handle_t table;
2524 /* VARARG(name,unicode_str); */
2525 };
2526 struct find_atom_reply
2527 {
2528 struct reply_header __header;
2529 atom_t atom;
2530 char __pad_12[4];
2531 };
2532
2533
2534
2535 struct get_atom_information_request
2536 {
2537 struct request_header __header;
2538 obj_handle_t table;
2539 atom_t atom;
2540 };
2541 struct get_atom_information_reply
2542 {
2543 struct reply_header __header;
2544 int count;
2545 int pinned;
2546 data_size_t total;
2547 /* VARARG(name,unicode_str); */
2548 char __pad_20[4];
2549 };
2550
2551
2552
2553 struct set_atom_information_request
2554 {
2555 struct request_header __header;
2556 obj_handle_t table;
2557 atom_t atom;
2558 int pinned;
2559 };
2560 struct set_atom_information_reply
2561 {
2562 struct reply_header __header;
2563 };
2564
2565
2566
2567 struct empty_atom_table_request
2568 {
2569 struct request_header __header;
2570 obj_handle_t table;
2571 int if_pinned;
2572 char __pad_20[4];
2573 };
2574 struct empty_atom_table_reply
2575 {
2576 struct reply_header __header;
2577 };
2578
2579
2580
2581 struct init_atom_table_request
2582 {
2583 struct request_header __header;
2584 int entries;
2585 };
2586 struct init_atom_table_reply
2587 {
2588 struct reply_header __header;
2589 obj_handle_t table;
2590 char __pad_12[4];
2591 };
2592
2593
2594
2595 struct get_msg_queue_request
2596 {
2597 struct request_header __header;
2598 };
2599 struct get_msg_queue_reply
2600 {
2601 struct reply_header __header;
2602 obj_handle_t handle;
2603 char __pad_12[4];
2604 };
2605
2606
2607
2608 struct set_queue_fd_request
2609 {
2610 struct request_header __header;
2611 obj_handle_t handle;
2612 };
2613 struct set_queue_fd_reply
2614 {
2615 struct reply_header __header;
2616 };
2617
2618
2619
2620 struct set_queue_mask_request
2621 {
2622 struct request_header __header;
2623 unsigned int wake_mask;
2624 unsigned int changed_mask;
2625 int skip_wait;
2626 };
2627 struct set_queue_mask_reply
2628 {
2629 struct reply_header __header;
2630 unsigned int wake_bits;
2631 unsigned int changed_bits;
2632 };
2633
2634
2635
2636 struct get_queue_status_request
2637 {
2638 struct request_header __header;
2639 int clear;
2640 };
2641 struct get_queue_status_reply
2642 {
2643 struct reply_header __header;
2644 unsigned int wake_bits;
2645 unsigned int changed_bits;
2646 };
2647
2648
2649
2650 struct get_process_idle_event_request
2651 {
2652 struct request_header __header;
2653 obj_handle_t handle;
2654 };
2655 struct get_process_idle_event_reply
2656 {
2657 struct reply_header __header;
2658 obj_handle_t event;
2659 char __pad_12[4];
2660 };
2661
2662
2663
2664 struct send_message_request
2665 {
2666 struct request_header __header;
2667 thread_id_t id;
2668 int type;
2669 int flags;
2670 user_handle_t win;
2671 unsigned int msg;
2672 lparam_t wparam;
2673 lparam_t lparam;
2674 timeout_t timeout;
2675 /* VARARG(data,message_data); */
2676 };
2677 struct send_message_reply
2678 {
2679 struct reply_header __header;
2680 };
2681
2682 struct post_quit_message_request
2683 {
2684 struct request_header __header;
2685 int exit_code;
2686 };
2687 struct post_quit_message_reply
2688 {
2689 struct reply_header __header;
2690 };
2691
2692 enum message_type
2693 {
2694 MSG_ASCII,
2695 MSG_UNICODE,
2696 MSG_NOTIFY,
2697 MSG_CALLBACK,
2698 MSG_CALLBACK_RESULT,
2699 MSG_OTHER_PROCESS,
2700 MSG_POSTED,
2701 MSG_HARDWARE,
2702 MSG_WINEVENT
2703 };
2704 #define SEND_MSG_ABORT_IF_HUNG 0x01
2705
2706
2707
2708 struct send_hardware_message_request
2709 {
2710 struct request_header __header;
2711 thread_id_t id;
2712 user_handle_t win;
2713 unsigned int msg;
2714 lparam_t wparam;
2715 lparam_t lparam;
2716 lparam_t info;
2717 int x;
2718 int y;
2719 unsigned int time;
2720 char __pad_60[4];
2721 };
2722 struct send_hardware_message_reply
2723 {
2724 struct reply_header __header;
2725 };
2726
2727
2728
2729 struct get_message_request
2730 {
2731 struct request_header __header;
2732 unsigned int flags;
2733 user_handle_t get_win;
2734 unsigned int get_first;
2735 unsigned int get_last;
2736 unsigned int hw_id;
2737 unsigned int wake_mask;
2738 unsigned int changed_mask;
2739 };
2740 struct get_message_reply
2741 {
2742 struct reply_header __header;
2743 user_handle_t win;
2744 unsigned int msg;
2745 lparam_t wparam;
2746 lparam_t lparam;
2747 int type;
2748 unsigned int time;
2749 unsigned int active_hooks;
2750 data_size_t total;
2751 /* VARARG(data,message_data); */
2752 };
2753
2754
2755
2756 struct reply_message_request
2757 {
2758 struct request_header __header;
2759 int remove;
2760 lparam_t result;
2761 /* VARARG(data,bytes); */
2762 };
2763 struct reply_message_reply
2764 {
2765 struct reply_header __header;
2766 };
2767
2768
2769
2770 struct accept_hardware_message_request
2771 {
2772 struct request_header __header;
2773 unsigned int hw_id;
2774 int remove;
2775 user_handle_t new_win;
2776 };
2777 struct accept_hardware_message_reply
2778 {
2779 struct reply_header __header;
2780 };
2781
2782
2783
2784 struct get_message_reply_request
2785 {
2786 struct request_header __header;
2787 int cancel;
2788 };
2789 struct get_message_reply_reply
2790 {
2791 struct reply_header __header;
2792 lparam_t result;
2793 /* VARARG(data,bytes); */
2794 };
2795
2796
2797
2798 struct set_win_timer_request
2799 {
2800 struct request_header __header;
2801 user_handle_t win;
2802 unsigned int msg;
2803 unsigned int rate;
2804 lparam_t id;
2805 lparam_t lparam;
2806 };
2807 struct set_win_timer_reply
2808 {
2809 struct reply_header __header;
2810 lparam_t id;
2811 };
2812
2813
2814
2815 struct kill_win_timer_request
2816 {
2817 struct request_header __header;
2818 user_handle_t win;
2819 lparam_t id;
2820 unsigned int msg;
2821 char __pad_28[4];
2822 };
2823 struct kill_win_timer_reply
2824 {
2825 struct reply_header __header;
2826 };
2827
2828
2829
2830 struct is_window_hung_request
2831 {
2832 struct request_header __header;
2833 user_handle_t win;
2834 };
2835 struct is_window_hung_reply
2836 {
2837 struct reply_header __header;
2838 int is_hung;
2839 char __pad_12[4];
2840 };
2841
2842
2843
2844 struct get_serial_info_request
2845 {
2846 struct request_header __header;
2847 obj_handle_t handle;
2848 };
2849 struct get_serial_info_reply
2850 {
2851 struct reply_header __header;
2852 unsigned int readinterval;
2853 unsigned int readconst;
2854 unsigned int readmult;
2855 unsigned int writeconst;
2856 unsigned int writemult;
2857 unsigned int eventmask;
2858 };
2859
2860
2861
2862 struct set_serial_info_request
2863 {
2864 struct request_header __header;
2865 obj_handle_t handle;
2866 int flags;
2867 unsigned int readinterval;
2868 unsigned int readconst;
2869 unsigned int readmult;
2870 unsigned int writeconst;
2871 unsigned int writemult;
2872 unsigned int eventmask;
2873 char __pad_44[4];
2874 };
2875 struct set_serial_info_reply
2876 {
2877 struct reply_header __header;
2878 };
2879 #define SERIALINFO_SET_TIMEOUTS 0x01
2880 #define SERIALINFO_SET_MASK 0x02
2881
2882
2883
2884 struct register_async_request
2885 {
2886 struct request_header __header;
2887 int type;
2888 async_data_t async;
2889 int count;
2890 char __pad_60[4];
2891 };
2892 struct register_async_reply
2893 {
2894 struct reply_header __header;
2895 };
2896 #define ASYNC_TYPE_READ 0x01
2897 #define ASYNC_TYPE_WRITE 0x02
2898 #define ASYNC_TYPE_WAIT 0x03
2899
2900
2901
2902 struct cancel_async_request
2903 {
2904 struct request_header __header;
2905 obj_handle_t handle;
2906 client_ptr_t iosb;
2907 int only_thread;
2908 char __pad_28[4];
2909 };
2910 struct cancel_async_reply
2911 {
2912 struct reply_header __header;
2913 };
2914
2915
2916
2917 struct ioctl_request
2918 {
2919 struct request_header __header;
2920 ioctl_code_t code;
2921 async_data_t async;
2922 int blocking;
2923 /* VARARG(in_data,bytes); */
2924 };
2925 struct ioctl_reply
2926 {
2927 struct reply_header __header;
2928 obj_handle_t wait;
2929 unsigned int options;
2930 /* VARARG(out_data,bytes); */
2931 };
2932
2933
2934
2935 struct get_ioctl_result_request
2936 {
2937 struct request_header __header;
2938 obj_handle_t handle;
2939 client_ptr_t user_arg;
2940 };
2941 struct get_ioctl_result_reply
2942 {
2943 struct reply_header __header;
2944 /* VARARG(out_data,bytes); */
2945 };
2946
2947
2948
2949 struct create_named_pipe_request
2950 {
2951 struct request_header __header;
2952 unsigned int access;
2953 unsigned int attributes;
2954 obj_handle_t rootdir;
2955 unsigned int options;
2956 unsigned int maxinstances;
2957 unsigned int outsize;
2958 unsigned int insize;
2959 timeout_t timeout;
2960 unsigned int flags;
2961 /* VARARG(name,unicode_str); */
2962 };
2963 struct create_named_pipe_reply
2964 {
2965 struct reply_header __header;
2966 obj_handle_t handle;
2967 char __pad_12[4];
2968 };
2969
2970
2971 #define NAMED_PIPE_MESSAGE_STREAM_WRITE 0x0001
2972 #define NAMED_PIPE_MESSAGE_STREAM_READ 0x0002
2973 #define NAMED_PIPE_NONBLOCKING_MODE 0x0004
2974 #define NAMED_PIPE_SERVER_END 0x8000
2975
2976
2977 struct get_named_pipe_info_request
2978 {
2979 struct request_header __header;
2980 obj_handle_t handle;
2981 };
2982 struct get_named_pipe_info_reply
2983 {
2984 struct reply_header __header;
2985 unsigned int flags;
2986 unsigned int maxinstances;
2987 unsigned int instances;
2988 unsigned int outsize;
2989 unsigned int insize;
2990 char __pad_28[4];
2991 };
2992
2993
2994
2995 struct create_window_request
2996 {
2997 struct request_header __header;
2998 user_handle_t parent;
2999 user_handle_t owner;
3000 atom_t atom;
3001 mod_handle_t instance;
3002 /* VARARG(class,unicode_str); */
3003 };
3004 struct create_window_reply
3005 {
3006 struct reply_header __header;
3007 user_handle_t handle;
3008 user_handle_t parent;
3009 user_handle_t owner;
3010 int extra;
3011 client_ptr_t class_ptr;
3012 };
3013
3014
3015
3016 struct destroy_window_request
3017 {
3018 struct request_header __header;
3019 user_handle_t handle;
3020 };
3021 struct destroy_window_reply
3022 {
3023 struct reply_header __header;
3024 };
3025
3026
3027
3028 struct get_desktop_window_request
3029 {
3030 struct request_header __header;
3031 int force;
3032 };
3033 struct get_desktop_window_reply
3034 {
3035 struct reply_header __header;
3036 user_handle_t top_window;
3037 user_handle_t msg_window;
3038 };
3039
3040
3041
3042 struct set_window_owner_request
3043 {
3044 struct request_header __header;
3045 user_handle_t handle;
3046 user_handle_t owner;
3047 };
3048 struct set_window_owner_reply
3049 {
3050 struct reply_header __header;
3051 user_handle_t full_owner;
3052 user_handle_t prev_owner;
3053 };
3054
3055
3056
3057 struct get_window_info_request
3058 {
3059 struct request_header __header;
3060 user_handle_t handle;
3061 };
3062 struct get_window_info_reply
3063 {
3064 struct reply_header __header;
3065 user_handle_t full_handle;
3066 user_handle_t last_active;
3067 process_id_t pid;
3068 thread_id_t tid;
3069 atom_t atom;
3070 int is_unicode;
3071 };
3072
3073
3074
3075 struct set_window_info_request
3076 {
3077 struct request_header __header;
3078 unsigned short flags;
3079 short int is_unicode;
3080 user_handle_t handle;
3081 unsigned int style;
3082 unsigned int ex_style;
3083 unsigned int id;
3084 mod_handle_t instance;
3085 lparam_t user_data;
3086 int extra_offset;
3087 data_size_t extra_size;
3088 lparam_t extra_value;
3089 };
3090 struct set_window_info_reply
3091 {
3092 struct reply_header __header;
3093 unsigned int old_style;
3094 unsigned int old_ex_style;
3095 mod_handle_t old_instance;
3096 lparam_t old_user_data;
3097 lparam_t old_extra_value;
3098 unsigned int old_id;
3099 char __pad_44[4];
3100 };
3101 #define SET_WIN_STYLE 0x01
3102 #define SET_WIN_EXSTYLE 0x02
3103 #define SET_WIN_ID 0x04
3104 #define SET_WIN_INSTANCE 0x08
3105 #define SET_WIN_USERDATA 0x10
3106 #define SET_WIN_EXTRA 0x20
3107 #define SET_WIN_UNICODE 0x40
3108
3109
3110
3111 struct set_parent_request
3112 {
3113 struct request_header __header;
3114 user_handle_t handle;
3115 user_handle_t parent;
3116 };
3117 struct set_parent_reply
3118 {
3119 struct reply_header __header;
3120 user_handle_t old_parent;
3121 user_handle_t full_parent;
3122 };
3123
3124
3125
3126 struct get_window_parents_request
3127 {
3128 struct request_header __header;
3129 user_handle_t handle;
3130 };
3131 struct get_window_parents_reply
3132 {
3133 struct reply_header __header;
3134 int count;
3135 /* VARARG(parents,user_handles); */
3136 char __pad_12[4];
3137 };
3138
3139
3140
3141 struct get_window_children_request
3142 {
3143 struct request_header __header;
3144 obj_handle_t desktop;
3145 user_handle_t parent;
3146 atom_t atom;
3147 thread_id_t tid;
3148 /* VARARG(class,unicode_str); */
3149 };
3150 struct get_window_children_reply
3151 {
3152 struct reply_header __header;
3153 int count;
3154 /* VARARG(children,user_handles); */
3155 char __pad_12[4];
3156 };
3157
3158
3159
3160 struct get_window_children_from_point_request
3161 {
3162 struct request_header __header;
3163 user_handle_t parent;
3164 int x;
3165 int y;
3166 };
3167 struct get_window_children_from_point_reply
3168 {
3169 struct reply_header __header;
3170 int count;
3171 /* VARARG(children,user_handles); */
3172 char __pad_12[4];
3173 };
3174
3175
3176
3177 struct get_window_tree_request
3178 {
3179 struct request_header __header;
3180 user_handle_t handle;
3181 };
3182 struct get_window_tree_reply
3183 {
3184 struct reply_header __header;
3185 user_handle_t parent;
3186 user_handle_t owner;
3187 user_handle_t next_sibling;
3188 user_handle_t prev_sibling;
3189 user_handle_t first_sibling;
3190 user_handle_t last_sibling;
3191 user_handle_t first_child;
3192 user_handle_t last_child;
3193 };
3194
3195
3196 struct set_window_pos_request
3197 {
3198 struct request_header __header;
3199 unsigned int flags;
3200 user_handle_t handle;
3201 user_handle_t previous;
3202 rectangle_t window;
3203 rectangle_t client;
3204 /* VARARG(valid,rectangles); */
3205 };
3206 struct set_window_pos_reply
3207 {
3208 struct reply_header __header;
3209 unsigned int new_style;
3210 unsigned int new_ex_style;
3211 };
3212
3213
3214
3215 struct get_window_rectangles_request
3216 {
3217 struct request_header __header;
3218 user_handle_t handle;
3219 };
3220 struct get_window_rectangles_reply
3221 {
3222 struct reply_header __header;
3223 rectangle_t window;
3224 rectangle_t visible;
3225 rectangle_t client;
3226 };
3227
3228
3229
3230 struct get_window_text_request
3231 {
3232 struct request_header __header;
3233 user_handle_t handle;
3234 };
3235 struct get_window_text_reply
3236 {
3237 struct reply_header __header;
3238 /* VARARG(text,unicode_str); */
3239 };
3240
3241
3242
3243 struct set_window_text_request
3244 {
3245 struct request_header __header;
3246 user_handle_t handle;
3247 /* VARARG(text,unicode_str); */
3248 };
3249 struct set_window_text_reply
3250 {
3251 struct reply_header __header;
3252 };
3253
3254
3255
3256 struct get_windows_offset_request
3257 {
3258 struct request_header __header;
3259 user_handle_t from;
3260 user_handle_t to;
3261 };
3262 struct get_windows_offset_reply
3263 {
3264 struct reply_header __header;
3265 int x;
3266 int y;
3267 };
3268
3269
3270
3271 struct get_visible_region_request
3272 {
3273 struct request_header __header;
3274 user_handle_t window;
3275 unsigned int flags;
3276 };
3277 struct get_visible_region_reply
3278 {
3279 struct reply_header __header;
3280 user_handle_t top_win;
3281 rectangle_t top_rect;
3282 rectangle_t win_rect;
3283 data_size_t total_size;
3284 /* VARARG(region,rectangles); */
3285 };
3286
3287
3288
3289 struct get_window_region_request
3290 {
3291 struct request_header __header;
3292 user_handle_t window;
3293 };
3294 struct get_window_region_reply
3295 {
3296 struct reply_header __header;
3297 data_size_t total_size;
3298 /* VARARG(region,rectangles); */
3299 char __pad_12[4];
3300 };
3301
3302
3303
3304 struct set_window_region_request
3305 {
3306 struct request_header __header;
3307 user_handle_t window;
3308 int redraw;
3309 /* VARARG(region,rectangles); */
3310 char __pad_20[4];
3311 };
3312 struct set_window_region_reply
3313 {
3314 struct reply_header __header;
3315 };
3316
3317
3318
3319 struct get_update_region_request
3320 {
3321 struct request_header __header;
3322 user_handle_t window;
3323 user_handle_t from_child;
3324 unsigned int flags;
3325 };
3326 struct get_update_region_reply
3327 {
3328 struct reply_header __header;
3329 user_handle_t child;
3330 unsigned int flags;
3331 data_size_t total_size;
3332 /* VARARG(region,rectangles); */
3333 char __pad_20[4];
3334 };
3335 #define UPDATE_NONCLIENT 0x01
3336 #define UPDATE_ERASE 0x02
3337 #define UPDATE_PAINT 0x04
3338 #define UPDATE_INTERNALPAINT 0x08
3339 #define UPDATE_ALLCHILDREN 0x10
3340 #define UPDATE_NOCHILDREN 0x20
3341 #define UPDATE_NOREGION 0x40
3342 #define UPDATE_DELAYED_ERASE 0x80
3343
3344
3345
3346 struct update_window_zorder_request
3347 {
3348 struct request_header __header;
3349 user_handle_t window;
3350 rectangle_t rect;
3351 };
3352 struct update_window_zorder_reply
3353 {
3354 struct reply_header __header;
3355 };
3356
3357
3358
3359 struct redraw_window_request
3360 {
3361 struct request_header __header;
3362 user_handle_t window;
3363 unsigned int flags;
3364 /* VARARG(region,rectangles); */
3365 char __pad_20[4];
3366 };
3367 struct redraw_window_reply
3368 {
3369 struct reply_header __header;
3370 };
3371
3372
3373
3374 struct set_window_property_request
3375 {
3376 struct request_header __header;
3377 user_handle_t window;
3378 lparam_t data;
3379 atom_t atom;
3380 /* VARARG(name,unicode_str); */
3381 char __pad_28[4];
3382 };
3383 struct set_window_property_reply
3384 {
3385 struct reply_header __header;
3386 };
3387
3388
3389
3390 struct remove_window_property_request
3391 {
3392 struct request_header __header;
3393 user_handle_t window;
3394 atom_t atom;
3395 /* VARARG(name,unicode_str); */
3396 };
3397 struct remove_window_property_reply
3398 {
3399 struct reply_header __header;
3400 lparam_t data;
3401 };
3402
3403
3404
3405 struct get_window_property_request
3406 {
3407 struct request_header __header;
3408 user_handle_t window;
3409 atom_t atom;
3410 /* VARARG(name,unicode_str); */
3411 };
3412 struct get_window_property_reply
3413 {
3414 struct reply_header __header;
3415 lparam_t data;
3416 };
3417
3418
3419
3420 struct get_window_properties_request
3421 {
3422 struct request_header __header;
3423 user_handle_t window;
3424 };
3425 struct get_window_properties_reply
3426 {
3427 struct reply_header __header;
3428 int total;
3429 /* VARARG(props,properties); */
3430 char __pad_12[4];
3431 };
3432
3433
3434
3435 struct create_winstation_request
3436 {
3437 struct request_header __header;
3438 unsigned int flags;
3439 unsigned int access;
3440 unsigned int attributes;
3441 /* VARARG(name,unicode_str); */
3442 };
3443 struct create_winstation_reply
3444 {
3445 struct reply_header __header;
3446 obj_handle_t handle;
3447 char __pad_12[4];
3448 };
3449
3450
3451
3452 struct open_winstation_request
3453 {
3454 struct request_header __header;
3455 unsigned int access;
3456 unsigned int attributes;
3457 /* VARARG(name,unicode_str); */
3458 };
3459 struct open_winstation_reply
3460 {
3461 struct reply_header __header;
3462 obj_handle_t handle;
3463 char __pad_12[4];
3464 };
3465
3466
3467
3468 struct close_winstation_request
3469 {
3470 struct request_header __header;
3471 obj_handle_t handle;
3472 };
3473 struct close_winstation_reply
3474 {
3475 struct reply_header __header;
3476 };
3477
3478
3479
3480 struct get_process_winstation_request
3481 {
3482 struct request_header __header;
3483 };
3484 struct get_process_winstation_reply
3485 {
3486 struct reply_header __header;
3487 obj_handle_t handle;
3488 char __pad_12[4];
3489 };
3490
3491
3492
3493 struct set_process_winstation_request
3494 {
3495 struct request_header __header;
3496 obj_handle_t handle;
3497 };
3498 struct set_process_winstation_reply
3499 {
3500 struct reply_header __header;
3501 };
3502
3503
3504
3505 struct enum_winstation_request
3506 {
3507 struct request_header __header;
3508 unsigned int index;
3509 };
3510 struct enum_winstation_reply
3511 {
3512 struct reply_header __header;
3513 unsigned int next;
3514 /* VARARG(name,unicode_str); */
3515 char __pad_12[4];
3516 };
3517
3518
3519
3520 struct create_desktop_request
3521 {
3522 struct request_header __header;
3523 unsigned int flags;
3524 unsigned int access;
3525 unsigned int attributes;
3526 /* VARARG(name,unicode_str); */
3527 };
3528 struct create_desktop_reply
3529 {
3530 struct reply_header __header;
3531 obj_handle_t handle;
3532 char __pad_12[4];
3533 };
3534
3535
3536
3537 struct open_desktop_request
3538 {
3539 struct request_header __header;
3540 obj_handle_t winsta;
3541 unsigned int flags;
3542 unsigned int access;
3543 unsigned int attributes;
3544 /* VARARG(name,unicode_str); */
3545 };
3546 struct open_desktop_reply
3547 {
3548 struct reply_header __header;
3549 obj_handle_t handle;
3550 char __pad_12[4];
3551 };
3552
3553
3554
3555 struct close_desktop_request
3556 {
3557 struct request_header __header;
3558 obj_handle_t handle;
3559 };
3560 struct close_desktop_reply
3561 {
3562 struct reply_header __header;
3563 };
3564
3565
3566
3567 struct get_thread_desktop_request
3568 {
3569 struct request_header __header;
3570 thread_id_t tid;
3571 };
3572 struct get_thread_desktop_reply
3573 {
3574 struct reply_header __header;
3575 obj_handle_t handle;
3576 char __pad_12[4];
3577 };
3578
3579
3580
3581 struct set_thread_desktop_request
3582 {
3583 struct request_header __header;
3584 obj_handle_t handle;
3585 };
3586 struct set_thread_desktop_reply
3587 {
3588 struct reply_header __header;
3589 };
3590
3591
3592
3593 struct enum_desktop_request
3594 {
3595 struct request_header __header;
3596 obj_handle_t winstation;
3597 unsigned int index;
3598 };
3599 struct enum_desktop_reply
3600 {
3601 struct reply_header __header;
3602 unsigned int next;
3603 /* VARARG(name,unicode_str); */
3604 char __pad_12[4];
3605 };
3606
3607
3608
3609 struct set_user_object_info_request
3610 {
3611 struct request_header __header;
3612 obj_handle_t handle;
3613 unsigned int flags;
3614 unsigned int obj_flags;
3615 };
3616 struct set_user_object_info_reply
3617 {
3618 struct reply_header __header;
3619 int is_desktop;
3620 unsigned int old_obj_flags;
3621 /* VARARG(name,unicode_str); */
3622 };
3623 #define SET_USER_OBJECT_FLAGS 1
3624
3625
3626
3627 struct attach_thread_input_request
3628 {
3629 struct request_header __header;
3630 thread_id_t tid_from;
3631 thread_id_t tid_to;
3632 int attach;
3633 };
3634 struct attach_thread_input_reply
3635 {
3636 struct reply_header __header;
3637 };
3638
3639
3640
3641 struct get_thread_input_request
3642 {
3643 struct request_header __header;
3644 thread_id_t tid;
3645 };
3646 struct get_thread_input_reply
3647 {
3648 struct reply_header __header;
3649 user_handle_t focus;
3650 user_handle_t capture;
3651 user_handle_t active;
3652 user_handle_t foreground;
3653 user_handle_t menu_owner;
3654 user_handle_t move_size;
3655 user_handle_t caret;
3656 rectangle_t rect;
3657 char __pad_52[4];
3658 };
3659
3660
3661
3662 struct get_last_input_time_request
3663 {
3664 struct request_header __header;
3665 };
3666 struct get_last_input_time_reply
3667 {
3668 struct reply_header __header;
3669 unsigned int time;
3670 char __pad_12[4];
3671 };
3672
3673
3674
3675 struct get_key_state_request
3676 {
3677 struct request_header __header;
3678 thread_id_t tid;
3679 int key;
3680 };
3681 struct get_key_state_reply
3682 {
3683 struct reply_header __header;
3684 unsigned char state;
3685 /* VARARG(keystate,bytes); */
3686 char __pad_9[7];
3687 };
3688
3689
3690 struct set_key_state_request
3691 {
3692 struct request_header __header;
3693 thread_id_t tid;
3694 /* VARARG(keystate,bytes); */
3695 };
3696 struct set_key_state_reply
3697 {
3698 struct reply_header __header;
3699 };
3700
3701
3702 struct set_foreground_window_request
3703 {
3704 struct request_header __header;
3705 user_handle_t handle;
3706 };
3707 struct set_foreground_window_reply
3708 {
3709 struct reply_header __header;
3710 user_handle_t previous;
3711 int send_msg_old;
3712 int send_msg_new;
3713 char __pad_20[4];
3714 };
3715
3716
3717 struct set_focus_window_request
3718 {
3719 struct request_header __header;
3720 user_handle_t handle;
3721 };
3722 struct set_focus_window_reply
3723 {
3724 struct reply_header __header;
3725 user_handle_t previous;
3726 char __pad_12[4];
3727 };
3728
3729
3730 struct set_active_window_request
3731 {
3732 struct request_header __header;
3733 user_handle_t handle;
3734 };
3735 struct set_active_window_reply
3736 {
3737 struct reply_header __header;
3738 user_handle_t previous;
3739 char __pad_12[4];
3740 };
3741
3742
3743 struct set_capture_window_request
3744 {
3745 struct request_header __header;
3746 user_handle_t handle;
3747 unsigned int flags;
3748 };
3749 struct set_capture_window_reply
3750 {
3751 struct reply_header __header;
3752 user_handle_t previous;
3753 user_handle_t full_handle;
3754 };
3755 #define CAPTURE_MENU 0x01
3756 #define CAPTURE_MOVESIZE 0x02
3757
3758
3759
3760 struct set_caret_window_request
3761 {
3762 struct request_header __header;
3763 user_handle_t handle;
3764 int width;
3765 int height;
3766 };
3767 struct set_caret_window_reply
3768 {
3769 struct reply_header __header;
3770 user_handle_t previous;
3771 rectangle_t old_rect;
3772 int old_hide;
3773 int old_state;
3774 char __pad_36[4];
3775 };
3776
3777
3778
3779 struct set_caret_info_request
3780 {
3781 struct request_header __header;
3782 unsigned int flags;
3783 user_handle_t handle;
3784 int x;
3785 int y;
3786 int hide;
3787 int state;
3788 };
3789 struct set_caret_info_reply
3790 {
3791 struct reply_header __header;
3792 user_handle_t full_handle;
3793 rectangle_t old_rect;
3794 int old_hide;
3795 int old_state;
3796 char __pad_36[4];
3797 };
3798 #define SET_CARET_POS 0x01
3799 #define SET_CARET_HIDE 0x02
3800 #define SET_CARET_STATE 0x04
3801
3802
3803
3804 struct set_hook_request
3805 {
3806 struct request_header __header;
3807 int id;
3808 process_id_t pid;
3809 thread_id_t tid;
3810 int event_min;
3811 int event_max;
3812 client_ptr_t proc;
3813 int flags;
3814 int unicode;
3815 /* VARARG(module,unicode_str); */
3816 };
3817 struct set_hook_reply
3818 {
3819 struct reply_header __header;
3820 user_handle_t handle;
3821 unsigned int active_hooks;
3822 };
3823
3824
3825
3826 struct remove_hook_request
3827 {
3828 struct request_header __header;
3829 user_handle_t handle;
3830 client_ptr_t proc;
3831 int id;
3832 };
3833 struct remove_hook_reply
3834 {
3835 struct reply_header __header;
3836 unsigned int active_hooks;
3837 char __pad_12[4];
3838 };
3839
3840
3841
3842 struct start_hook_chain_request
3843 {
3844 struct request_header __header;
3845 int id;
3846 int event;
3847 user_handle_t window;
3848 int object_id;
3849 int child_id;
3850 };
3851 struct start_hook_chain_reply
3852 {
3853 struct reply_header __header;
3854 user_handle_t handle;
3855 process_id_t pid;
3856 thread_id_t tid;
3857 int unicode;
3858 client_ptr_t proc;
3859 unsigned int active_hooks;
3860 /* VARARG(module,unicode_str); */
3861 char __pad_36[4];
3862 };
3863
3864
3865
3866 struct finish_hook_chain_request
3867 {
3868 struct request_header __header;
3869 int id;
3870 };
3871 struct finish_hook_chain_reply
3872 {
3873 struct reply_header __header;
3874 };
3875
3876
3877
3878 struct get_hook_info_request
3879 {
3880 struct request_header __header;
3881 user_handle_t handle;
3882 int get_next;
3883 int event;
3884 user_handle_t window;
3885 int object_id;
3886 int child_id;
3887 };
3888 struct get_hook_info_reply
3889 {
3890 struct reply_header __header;
3891 user_handle_t handle;
3892 int id;
3893 process_id_t pid;
3894 thread_id_t tid;
3895 client_ptr_t proc;
3896 int unicode;
3897 /* VARARG(module,unicode_str); */
3898 char __pad_36[4];
3899 };
3900
3901
3902
3903 struct create_class_request
3904 {
3905 struct request_header __header;
3906 int local;
3907 atom_t atom;
3908 unsigned int style;
3909 mod_handle_t instance;
3910 int extra;
3911 int win_extra;
3912 client_ptr_t client_ptr;
3913 /* VARARG(name,unicode_str); */
3914 };
3915 struct create_class_reply
3916 {
3917 struct reply_header __header;
3918 atom_t atom;
3919 char __pad_12[4];
3920 };
3921
3922
3923
3924 struct destroy_class_request
3925 {
3926 struct request_header __header;
3927 atom_t atom;
3928 mod_handle_t instance;
3929 /* VARARG(name,unicode_str); */
3930 };
3931 struct destroy_class_reply
3932 {
3933 struct reply_header __header;
3934 client_ptr_t client_ptr;
3935 };
3936
3937
3938
3939 struct set_class_info_request
3940 {
3941 struct request_header __header;
3942 user_handle_t window;
3943 unsigned int flags;
3944 atom_t atom;
3945 unsigned int style;
3946 int win_extra;
3947 mod_handle_t instance;
3948 int extra_offset;
3949 data_size_t extra_size;
3950 lparam_t extra_value;
3951 };
3952 struct set_class_info_reply
3953 {
3954 struct reply_header __header;
3955 atom_t old_atom;
3956 unsigned int old_style;
3957 int old_extra;
3958 int old_win_extra;
3959 mod_handle_t old_instance;
3960 lparam_t old_extra_value;
3961 };
3962 #define SET_CLASS_ATOM 0x0001
3963 #define SET_CLASS_STYLE 0x0002
3964 #define SET_CLASS_WINEXTRA 0x0004
3965 #define SET_CLASS_INSTANCE 0x0008
3966 #define SET_CLASS_EXTRA 0x0010
3967
3968
3969
3970 struct set_clipboard_info_request
3971 {
3972 struct request_header __header;
3973 unsigned int flags;
3974 user_handle_t clipboard;
3975 user_handle_t owner;
3976 user_handle_t viewer;
3977 unsigned int seqno;
3978 };
3979 struct set_clipboard_info_reply
3980 {
3981 struct reply_header __header;
3982 unsigned int flags;
3983 user_handle_t old_clipboard;
3984 user_handle_t old_owner;
3985 user_handle_t old_viewer;
3986 unsigned int seqno;
3987 char __pad_28[4];
3988 };
3989
3990 #define SET_CB_OPEN 0x001
3991 #define SET_CB_OWNER 0x002
3992 #define SET_CB_VIEWER 0x004
3993 #define SET_CB_SEQNO 0x008
3994 #define SET_CB_RELOWNER 0x010
3995 #define SET_CB_CLOSE 0x020
3996 #define CB_OPEN 0x040
3997 #define CB_OWNER 0x080
3998 #define CB_PROCESS 0x100
3999
4000
4001
4002 struct open_token_request
4003 {
4004 struct request_header __header;
4005 obj_handle_t handle;
4006 unsigned int access;
4007 unsigned int attributes;
4008 unsigned int flags;
4009 };
4010 struct open_token_reply
4011 {
4012 struct reply_header __header;
4013 obj_handle_t token;
4014 char __pad_12[4];
4015 };
4016 #define OPEN_TOKEN_THREAD 1
4017 #define OPEN_TOKEN_AS_SELF 2
4018
4019
4020
4021 struct set_global_windows_request
4022 {
4023 struct request_header __header;
4024 unsigned int flags;
4025 user_handle_t shell_window;
4026 user_handle_t shell_listview;
4027 user_handle_t progman_window;
4028 user_handle_t taskman_window;
4029 };
4030 struct set_global_windows_reply
4031 {
4032 struct reply_header __header;
4033 user_handle_t old_shell_window;
4034 user_handle_t old_shell_listview;
4035 user_handle_t old_progman_window;
4036 user_handle_t old_taskman_window;
4037 };
4038 #define SET_GLOBAL_SHELL_WINDOWS 0x01
4039 #define SET_GLOBAL_PROGMAN_WINDOW 0x02
4040 #define SET_GLOBAL_TASKMAN_WINDOW 0x04
4041
4042
4043 struct adjust_token_privileges_request
4044 {
4045 struct request_header __header;
4046 obj_handle_t handle;
4047 int disable_all;
4048 int get_modified_state;
4049 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4050 };
4051 struct adjust_token_privileges_reply
4052 {
4053 struct reply_header __header;
4054 unsigned int len;
4055 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4056 char __pad_12[4];
4057 };
4058
4059
4060 struct get_token_privileges_request
4061 {
4062 struct request_header __header;
4063 obj_handle_t handle;
4064 };
4065 struct get_token_privileges_reply
4066 {
4067 struct reply_header __header;
4068 unsigned int len;
4069 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4070 char __pad_12[4];
4071 };
4072
4073
4074 struct check_token_privileges_request
4075 {
4076 struct request_header __header;
4077 obj_handle_t handle;
4078 int all_required;
4079 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4080 };
4081 struct check_token_privileges_reply
4082 {
4083 struct reply_header __header;
4084 int has_privileges;
4085 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4086 char __pad_12[4];
4087 };
4088
4089 struct duplicate_token_request
4090 {
4091 struct request_header __header;
4092 obj_handle_t handle;
4093 unsigned int access;
4094 unsigned int attributes;
4095 int primary;
4096 int impersonation_level;
4097 };
4098 struct duplicate_token_reply
4099 {
4100 struct reply_header __header;
4101 obj_handle_t new_handle;
4102 char __pad_12[4];
4103 };
4104
4105 struct access_check_request
4106 {
4107 struct request_header __header;
4108 obj_handle_t handle;
4109 unsigned int desired_access;
4110 unsigned int mapping_read;
4111 unsigned int mapping_write;
4112 unsigned int mapping_execute;
4113 unsigned int mapping_all;
4114 /* VARARG(sd,security_descriptor); */
4115 };
4116 struct access_check_reply
4117 {
4118 struct reply_header __header;
4119 unsigned int access_granted;
4120 unsigned int access_status;
4121 unsigned int privileges_len;
4122 /* VARARG(privileges,LUID_AND_ATTRIBUTES); */
4123 char __pad_20[4];
4124 };
4125
4126 struct get_token_user_request
4127 {
4128 struct request_header __header;
4129 obj_handle_t handle;
4130 };
4131 struct get_token_user_reply
4132 {
4133 struct reply_header __header;
4134 data_size_t user_len;
4135 /* VARARG(user,SID); */
4136 char __pad_12[4];
4137 };
4138
4139 struct get_token_groups_request
4140 {
4141 struct request_header __header;
4142 obj_handle_t handle;
4143 };
4144 struct get_token_groups_reply
4145 {
4146 struct reply_header __header;
4147 data_size_t user_len;
4148 /* VARARG(user,token_groups); */
4149 char __pad_12[4];
4150 };
4151
4152 struct get_token_default_dacl_request
4153 {
4154 struct request_header __header;
4155 obj_handle_t handle;
4156 };
4157 struct get_token_default_dacl_reply
4158 {
4159 struct reply_header __header;
4160 data_size_t acl_len;
4161 /* VARARG(acl,ACL); */
4162 char __pad_12[4];
4163 };
4164
4165 struct set_token_default_dacl_request
4166 {
4167 struct request_header __header;
4168 obj_handle_t handle;
4169 /* VARARG(acl,ACL); */
4170 };
4171 struct set_token_default_dacl_reply
4172 {
4173 struct reply_header __header;
4174 };
4175
4176 struct set_security_object_request
4177 {
4178 struct request_header __header;
4179 obj_handle_t handle;
4180 unsigned int security_info;
4181 /* VARARG(sd,security_descriptor); */
4182 char __pad_20[4];
4183 };
4184 struct set_security_object_reply
4185 {
4186 struct reply_header __header;
4187 };
4188
4189 struct get_security_object_request
4190 {
4191 struct request_header __header;
4192 obj_handle_t handle;
4193 unsigned int security_info;
4194 };
4195 struct get_security_object_reply
4196 {
4197 struct reply_header __header;
4198 unsigned int sd_len;
4199 /* VARARG(sd,security_descriptor); */
4200 char __pad_12[4];
4201 };
4202
4203
4204 struct create_mailslot_request
4205 {
4206 struct request_header __header;
4207 unsigned int access;
4208 unsigned int attributes;
4209 obj_handle_t rootdir;
4210 timeout_t read_timeout;
4211 unsigned int max_msgsize;
4212 /* VARARG(name,unicode_str); */
4213 };
4214 struct create_mailslot_reply
4215 {
4216 struct reply_header __header;
4217 obj_handle_t handle;
4218 char __pad_12[4];
4219 };
4220
4221
4222
4223 struct set_mailslot_info_request
4224 {
4225 struct request_header __header;
4226 obj_handle_t handle;
4227 timeout_t read_timeout;
4228 unsigned int flags;
4229 };
4230 struct set_mailslot_info_reply
4231 {
4232 struct reply_header __header;
4233 timeout_t read_timeout;
4234 unsigned int max_msgsize;
4235 char __pad_20[4];
4236 };
4237 #define MAILSLOT_SET_READ_TIMEOUT 1
4238
4239
4240
4241 struct create_directory_request
4242 {
4243 struct request_header __header;
4244 unsigned int access;
4245 unsigned int attributes;
4246 obj_handle_t rootdir;
4247 /* VARARG(directory_name,unicode_str); */
4248 };
4249 struct create_directory_reply
4250 {
4251 struct reply_header __header;
4252 obj_handle_t handle;
4253 char __pad_12[4];
4254 };
4255
4256
4257
4258 struct open_directory_request
4259 {
4260 struct request_header __header;
4261 unsigned int access;
4262 unsigned int attributes;
4263 obj_handle_t rootdir;
4264 /* VARARG(directory_name,unicode_str); */
4265 };
4266 struct open_directory_reply
4267 {
4268 struct reply_header __header;
4269 obj_handle_t handle;
4270 char __pad_12[4];
4271 };
4272
4273
4274
4275 struct get_directory_entry_request
4276 {
4277 struct request_header __header;
4278 obj_handle_t handle;
4279 unsigned int index;
4280 };
4281 struct get_directory_entry_reply
4282 {
4283 struct reply_header __header;
4284 data_size_t name_len;
4285 /* VARARG(name,unicode_str,name_len); */
4286 /* VARARG(type,unicode_str); */
4287 char __pad_12[4];
4288 };
4289
4290
4291
4292 struct create_symlink_request
4293 {
4294 struct request_header __header;
4295 unsigned int access;
4296 unsigned int attributes;
4297 obj_handle_t rootdir;
4298 data_size_t name_len;
4299 /* VARARG(name,unicode_str,name_len); */
4300 /* VARARG(target_name,unicode_str); */
4301 };
4302 struct create_symlink_reply
4303 {
4304 struct reply_header __header;
4305 obj_handle_t handle;
4306 char __pad_12[4];
4307 };
4308
4309
4310
4311 struct open_symlink_request
4312 {
4313 struct request_header __header;
4314 unsigned int access;
4315 unsigned int attributes;
4316 obj_handle_t rootdir;
4317 /* VARARG(name,unicode_str); */
4318 };
4319 struct open_symlink_reply
4320 {
4321 struct reply_header __header;
4322 obj_handle_t handle;
4323 char __pad_12[4];
4324 };
4325
4326
4327
4328 struct query_symlink_request
4329 {
4330 struct request_header __header;
4331 obj_handle_t handle;
4332 };
4333 struct query_symlink_reply
4334 {
4335 struct reply_header __header;
4336 /* VARARG(target_name,unicode_str); */
4337 };
4338
4339
4340
4341 struct get_object_info_request
4342 {
4343 struct request_header __header;
4344 obj_handle_t handle;
4345 };
4346 struct get_object_info_reply
4347 {
4348 struct reply_header __header;
4349 unsigned int access;
4350 unsigned int ref_count;
4351 };
4352
4353
4354
4355 struct unlink_object_request
4356 {
4357 struct request_header __header;
4358 obj_handle_t handle;
4359 };
4360 struct unlink_object_reply
4361 {
4362 struct reply_header __header;
4363 };
4364
4365
4366
4367 struct get_token_impersonation_level_request
4368 {
4369 struct request_header __header;
4370 obj_handle_t handle;
4371 };
4372 struct get_token_impersonation_level_reply
4373 {
4374 struct reply_header __header;
4375 int impersonation_level;
4376 char __pad_12[4];
4377 };
4378
4379
4380 struct allocate_locally_unique_id_request
4381 {
4382 struct request_header __header;
4383 };
4384 struct allocate_locally_unique_id_reply
4385 {
4386 struct reply_header __header;
4387 luid_t luid;
4388 };
4389
4390
4391
4392 struct create_device_manager_request
4393 {
4394 struct request_header __header;
4395 unsigned int access;
4396 unsigned int attributes;
4397 };
4398 struct create_device_manager_reply
4399 {
4400 struct reply_header __header;
4401 obj_handle_t handle;
4402 char __pad_12[4];
4403 };
4404
4405
4406
4407 struct create_device_request
4408 {
4409 struct request_header __header;
4410 unsigned int access;
4411 unsigned int attributes;
4412 obj_handle_t rootdir;
4413 client_ptr_t user_ptr;
4414 obj_handle_t manager;
4415 /* VARARG(name,unicode_str); */
4416 };
4417 struct create_device_reply
4418 {
4419 struct reply_header __header;
4420 obj_handle_t handle;
4421 char __pad_12[4];
4422 };
4423
4424
4425
4426 struct delete_device_request
4427 {
4428 struct request_header __header;
4429 obj_handle_t handle;
4430 };
4431 struct delete_device_reply
4432 {
4433 struct reply_header __header;
4434 };
4435
4436
4437
4438 struct get_next_device_request_request
4439 {
4440 struct request_header __header;
4441 obj_handle_t manager;
4442 obj_handle_t prev;
4443 unsigned int status;
4444 /* VARARG(prev_data,bytes); */
4445 };
4446 struct get_next_device_request_reply
4447 {
4448 struct reply_header __header;
4449 obj_handle_t next;
4450 ioctl_code_t code;
4451 client_ptr_t user_ptr;
4452 data_size_t in_size;
4453 data_size_t out_size;
4454 /* VARARG(next_data,bytes); */
4455 };
4456
4457
4458
4459 struct make_process_system_request
4460 {
4461 struct request_header __header;
4462 };
4463 struct make_process_system_reply
4464 {
4465 struct reply_header __header;
4466 obj_handle_t event;
4467 char __pad_12[4];
4468 };
4469
4470
4471
4472 struct get_token_statistics_request
4473 {
4474 struct request_header __header;
4475 obj_handle_t handle;
4476 };
4477 struct get_token_statistics_reply
4478 {
4479 struct reply_header __header;
4480 luid_t token_id;
4481 luid_t modified_id;
4482 int primary;
4483 int impersonation_level;
4484 int group_count;
4485 int privilege_count;
4486 };
4487
4488
4489
4490 struct create_completion_request
4491 {
4492 struct request_header __header;
4493 unsigned int access;
4494 unsigned int attributes;
4495 unsigned int concurrent;
4496 obj_handle_t rootdir;
4497 /* VARARG(filename,string); */
4498 };
4499 struct create_completion_reply
4500 {
4501 struct reply_header __header;
4502 obj_handle_t handle;
4503 char __pad_12[4];
4504 };
4505
4506
4507
4508 struct open_completion_request
4509 {
4510 struct request_header __header;
4511 unsigned int access;
4512 unsigned int attributes;
4513 obj_handle_t rootdir;
4514 /* VARARG(filename,string); */
4515 };
4516 struct open_completion_reply
4517 {
4518 struct reply_header __header;
4519 obj_handle_t handle;
4520 char __pad_12[4];
4521 };
4522
4523
4524
4525 struct add_completion_request
4526 {
4527 struct request_header __header;
4528 obj_handle_t handle;
4529 apc_param_t ckey;
4530 apc_param_t cvalue;
4531 unsigned int information;
4532 unsigned int status;
4533 };
4534 struct add_completion_reply
4535 {
4536 struct reply_header __header;
4537 };
4538
4539
4540
4541 struct remove_completion_request
4542 {
4543 struct request_header __header;
4544 obj_handle_t handle;
4545 };
4546 struct remove_completion_reply
4547 {
4548 struct reply_header __header;
4549 apc_param_t ckey;
4550 apc_param_t cvalue;
4551 unsigned int information;
4552 unsigned int status;
4553 };
4554
4555
4556
4557 struct query_completion_request
4558 {
4559 struct request_header __header;
4560 obj_handle_t handle;
4561 };
4562 struct query_completion_reply
4563 {
4564 struct reply_header __header;
4565 unsigned int depth;
4566 char __pad_12[4];
4567 };
4568
4569
4570
4571 struct set_completion_info_request
4572 {
4573 struct request_header __header;
4574 obj_handle_t handle;
4575 apc_param_t ckey;
4576 obj_handle_t chandle;
4577 char __pad_28[4];
4578 };
4579 struct set_completion_info_reply
4580 {
4581 struct reply_header __header;
4582 };
4583
4584
4585
4586 struct add_fd_completion_request
4587 {
4588 struct request_header __header;
4589 obj_handle_t handle;
4590 apc_param_t cvalue;
4591 unsigned int status;
4592 unsigned int information;
4593 };
4594 struct add_fd_completion_reply
4595 {
4596 struct reply_header __header;
4597 };
4598
4599
4600
4601 struct get_window_layered_info_request
4602 {
4603 struct request_header __header;
4604 user_handle_t handle;
4605 };
4606 struct get_window_layered_info_reply
4607 {
4608 struct reply_header __header;
4609 unsigned int color_key;
4610 unsigned int alpha;
4611 unsigned int flags;
4612 char __pad_20[4];
4613 };
4614
4615
4616
4617 struct set_window_layered_info_request
4618 {
4619 struct request_header __header;
4620 user_handle_t handle;
4621 unsigned int color_key;
4622 unsigned int alpha;
4623 unsigned int flags;
4624 char __pad_28[4];
4625 };
4626 struct set_window_layered_info_reply
4627 {
4628 struct reply_header __header;
4629 };
4630
4631
4632
4633 struct alloc_user_handle_request
4634 {
4635 struct request_header __header;
4636 };
4637 struct alloc_user_handle_reply
4638 {
4639 struct reply_header __header;
4640 user_handle_t handle;
4641 char __pad_12[4];
4642 };
4643
4644
4645
4646 struct free_user_handle_request
4647 {
4648 struct request_header __header;
4649 user_handle_t handle;
4650 };
4651 struct free_user_handle_reply
4652 {
4653 struct reply_header __header;
4654 };
4655
4656
4657 enum request
4658 {
4659 REQ_new_process,
4660 REQ_get_new_process_info,
4661 REQ_new_thread,
4662 REQ_get_startup_info,
4663 REQ_init_process_done,
4664 REQ_init_thread,
4665 REQ_terminate_process,
4666 REQ_terminate_thread,
4667 REQ_get_process_info,
4668 REQ_set_process_info,
4669 REQ_get_thread_info,
4670 REQ_set_thread_info,
4671 REQ_get_dll_info,
4672 REQ_suspend_thread,
4673 REQ_resume_thread,
4674 REQ_load_dll,
4675 REQ_unload_dll,
4676 REQ_queue_apc,
4677 REQ_get_apc_result,
4678 REQ_close_handle,
4679 REQ_set_handle_info,
4680 REQ_dup_handle,
4681 REQ_open_process,
4682 REQ_open_thread,
4683 REQ_select,
4684 REQ_create_event,
4685 REQ_event_op,
4686 REQ_open_event,
4687 REQ_create_mutex,
4688 REQ_release_mutex,
4689 REQ_open_mutex,
4690 REQ_create_semaphore,
4691 REQ_release_semaphore,
4692 REQ_open_semaphore,
4693 REQ_create_file,
4694 REQ_open_file_object,
4695 REQ_alloc_file_handle,
4696 REQ_get_handle_unix_name,
4697 REQ_get_handle_fd,
4698 REQ_flush_file,
4699 REQ_lock_file,
4700 REQ_unlock_file,
4701 REQ_create_socket,
4702 REQ_accept_socket,
4703 REQ_set_socket_event,
4704 REQ_get_socket_event,
4705 REQ_enable_socket_event,
4706 REQ_set_socket_deferred,
4707 REQ_alloc_console,
4708 REQ_free_console,
4709