3 * System.Diagnostics.Process support
6 * Dick Porter (dick@ximian.com)
8 * (C) 2002 Ximian, Inc.
11 #ifndef _MONO_METADATA_W32PROCESS_H_
12 #define _MONO_METADATA_W32PROCESS_H_
18 #include <sys/types.h>
21 #include <mono/metadata/object.h>
22 #include "object-internals.h"
26 MONO_W32PROCESS_PRIORITY_CLASS_NORMAL
= 0x0020,
27 MONO_W32PROCESS_PRIORITY_CLASS_IDLE
= 0x0040,
28 MONO_W32PROCESS_PRIORITY_CLASS_HIGH
= 0x0080,
29 MONO_W32PROCESS_PRIORITY_CLASS_REALTIME
= 0x0100,
30 MONO_W32PROCESS_PRIORITY_CLASS_BELOW_NORMAL
= 0x4000,
31 MONO_W32PROCESS_PRIORITY_CLASS_ABOVE_NORMAL
= 0x8000,
32 } MonoW32ProcessPriorityClass
;
36 gpointer process_handle
;
37 guint32 pid
; /* Contains mono_w32error_get_last () on failure */
38 MonoArray
*env_variables
;
41 mono_bstr password
; /* BSTR from SecureString in 2.0 profile */
42 MonoBoolean load_user_profile
;
49 MonoString
*arguments
;
50 MonoString
*working_directory
;
53 MonoBoolean error_dialog
;
54 gpointer error_dialog_parent_handle
;
55 MonoBoolean use_shell_execute
;
57 MonoString
*unused_username
;
58 MonoString
*unused_domain
;
59 MonoObject
*unused_password
; /* SecureString in 2.0 profile, dummy in 1.x */
60 MonoString
*unused_password_in_clear_text
;
61 MonoBoolean unused_load_user_profile
;
62 MonoBoolean unused_redirect_standard_input
;
63 MonoBoolean unused_redirect_standard_output
;
64 MonoBoolean unused_redirect_standard_error
;
65 MonoObject
*unused_encoding_stdout
;
66 MonoObject
*unused_encoding_stderr
;
68 MonoBoolean create_no_window
;
70 MonoObject
*unused_weak_parent_process
;
71 MonoObject
*unused_envVars
;
73 } MonoW32ProcessStartInfo
;
75 TYPED_HANDLE_DECL (MonoW32ProcessStartInfo
);
77 typedef struct _MonoCreateProcessCoop
{
80 gunichar2
*working_directory
;
85 MonoStringHandle filename
;
86 MonoStringHandle arguments
;
87 MonoStringHandle working_directory
;
88 MonoStringHandle verb
;
89 MonoStringHandle username
;
90 MonoStringHandle domain
;
93 MonoGCHandle filename
;
94 MonoGCHandle arguments
;
95 MonoGCHandle working_directory
;
97 MonoGCHandle username
;
103 gsize working_directory
;
108 } MonoCreateProcessCoop
;
111 mono_createprocess_coop_init (MonoCreateProcessCoop
*coop
, MonoW32ProcessStartInfoHandle proc_start_info
, MonoW32ProcessInfo
*process_info
);
114 mono_createprocess_coop_cleanup (MonoCreateProcessCoop
*coop
);
117 mono_w32process_init (void);
120 mono_w32process_cleanup (void);
123 mono_w32process_signal_finished (void);
128 mono_w32process_set_cli_launcher (gchar
*path
);
131 mono_w32process_get_path (pid_t pid
);
134 #endif /* _MONO_METADATA_W32PROCESS_H_ */