server: Define an architecture-independent structure for process startup info.
diff --git a/server/protocol.def b/server/protocol.def
index 1dcc042..d6b282a 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -226,6 +226,42 @@
typedef __int64 timeout_t;
#define TIMEOUT_INFINITE (((timeout_t)0x7fffffff) << 32 | 0xffffffff)
+/* structure for process startup info */
+typedef struct
+{
+ unsigned int debug_flags;
+ unsigned int console_flags;
+ obj_handle_t console;
+ obj_handle_t hstdin;
+ obj_handle_t hstdout;
+ obj_handle_t hstderr;
+ unsigned int x;
+ unsigned int y;
+ unsigned int xsize;
+ unsigned int ysize;
+ unsigned int xchars;
+ unsigned int ychars;
+ unsigned int attribute;
+ unsigned int flags;
+ unsigned int show;
+ data_size_t curdir_len;
+ data_size_t dllpath_len;
+ data_size_t imagepath_len;
+ data_size_t cmdline_len;
+ data_size_t title_len;
+ data_size_t desktop_len;
+ data_size_t shellinfo_len;
+ data_size_t runtime_len;
+ /* VARARG(curdir,unicode_str,curdir_len); */
+ /* VARARG(dllpath,unicode_str,dllpath_len); */
+ /* VARARG(imagepath,unicode_str,imagepath_len); */
+ /* VARARG(cmdline,unicode_str,cmdline_len); */
+ /* VARARG(title,unicode_str,title_len); */
+ /* VARARG(desktop,unicode_str,desktop_len); */
+ /* VARARG(shellinfo,unicode_str,shellinfo_len); */
+ /* VARARG(runtime,unicode_str,runtime_len); */
+} startup_info_t;
+
/* structure returned in the list of window properties */
typedef struct
{
@@ -549,14 +585,12 @@
unsigned int create_flags; /* creation flags */
int socket_fd; /* file descriptor for process socket */
obj_handle_t exe_file; /* file handle for main exe */
- obj_handle_t hstdin; /* handle for stdin */
- obj_handle_t hstdout; /* handle for stdout */
- obj_handle_t hstderr; /* handle for stderr */
unsigned int process_access; /* access rights for process object */
unsigned int process_attr; /* attributes for process object */
unsigned int thread_access; /* access rights for thread object */
unsigned int thread_attr; /* attributes for thread object */
- VARARG(info,startup_info); /* startup information */
+ data_size_t info_size; /* size of startup info */
+ VARARG(info,startup_info,info_size); /* startup information */
VARARG(env,unicode_str); /* environment for new process */
@REPLY
obj_handle_t info; /* new process info handle */
@@ -592,10 +626,8 @@
@REQ(get_startup_info)
@REPLY
obj_handle_t exe_file; /* file handle for main exe */
- obj_handle_t hstdin; /* handle for stdin */
- obj_handle_t hstdout; /* handle for stdout */
- obj_handle_t hstderr; /* handle for stderr */
- VARARG(info,startup_info); /* startup information */
+ data_size_t info_size; /* size of startup info */
+ VARARG(info,startup_info,info_size); /* startup information */
VARARG(env,unicode_str); /* environment */
@END