2 * process.h: System.Diagnostics.Process support
5 * Dick Porter (dick@ximian.com)
7 * (C) 2002 Ximian, Inc.
10 #ifndef _MONO_METADATA_PROCESS_H_
11 #define _MONO_METADATA_PROCESS_H_
16 #include <mono/metadata/object.h>
17 #include <mono/io-layer/io-layer.h>
18 #include "mono/utils/mono-compiler.h"
22 HANDLE process_handle
;
24 guint32 pid
; /* Contains GetLastError () on failure */
27 MonoArray
*env_values
;
30 gpointer password
; /* BSTR from SecureString in 2.0 profile */
31 MonoBoolean load_user_profile
;
37 MonoString
*arguments
;
38 gpointer error_dialog_parent_handle
;
41 MonoString
*working_directory
;
43 MonoBoolean create_no_window
;
44 MonoBoolean error_dialog
;
45 MonoBoolean redirect_standard_error
;
46 MonoBoolean redirect_standard_input
;
47 MonoBoolean redirect_standard_output
;
48 MonoBoolean use_shell_execute
;
50 MonoObject
*encoding_stderr
;
51 MonoObject
*encoding_stdout
;
54 MonoObject
*password
; /* SecureString in 2.0 profile, dummy in 1.x */
55 MonoBoolean load_user_profile
;
56 } MonoProcessStartInfo
;
60 HANDLE
ves_icall_System_Diagnostics_Process_GetProcess_internal (guint32 pid
) MONO_INTERNAL
;
61 MonoArray
*ves_icall_System_Diagnostics_Process_GetProcesses_internal (void) MONO_INTERNAL
;
62 guint32
ves_icall_System_Diagnostics_Process_GetPid_internal (void) MONO_INTERNAL
;
63 void ves_icall_System_Diagnostics_Process_Process_free_internal (MonoObject
*this, HANDLE process
) MONO_INTERNAL
;
64 MonoArray
*ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
*this, HANDLE process
) MONO_INTERNAL
;
65 void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject
*this, MonoString
*filename
) MONO_INTERNAL
;
66 MonoBoolean
ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoProcessStartInfo
*proc_start_info
, MonoProcInfo
*process_handle
) MONO_INTERNAL
;
67 MonoBoolean
ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInfo
*proc_start_info
, HANDLE stdin_handle
, HANDLE stdout_handle
, HANDLE stderr_handle
, MonoProcInfo
*process_handle
) MONO_INTERNAL
;
68 MonoBoolean
ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObject
*this, HANDLE process
, gint32 ms
) MONO_INTERNAL
;
69 MonoBoolean
ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal (MonoObject
*this, HANDLE process
, gint32 ms
) MONO_INTERNAL
;
70 gint64
ves_icall_System_Diagnostics_Process_ExitTime_internal (HANDLE process
) MONO_INTERNAL
;
71 gint64
ves_icall_System_Diagnostics_Process_StartTime_internal (HANDLE process
) MONO_INTERNAL
;
72 gint32
ves_icall_System_Diagnostics_Process_ExitCode_internal (HANDLE process
) MONO_INTERNAL
;
73 MonoString
*ves_icall_System_Diagnostics_Process_ProcessName_internal (HANDLE process
) MONO_INTERNAL
;
74 MonoBoolean
ves_icall_System_Diagnostics_Process_GetWorkingSet_internal (HANDLE process
, guint32
*min
, guint32
*max
) MONO_INTERNAL
;
75 MonoBoolean
ves_icall_System_Diagnostics_Process_SetWorkingSet_internal (HANDLE process
, guint32 min
, guint32 max
, MonoBoolean use_min
) MONO_INTERNAL
;
76 MonoBoolean
ves_icall_System_Diagnostics_Process_Kill_internal (HANDLE process
, gint32 sig
) MONO_INTERNAL
;
77 gint64
ves_icall_System_Diagnostics_Process_Times (HANDLE process
, gint32 type
) MONO_INTERNAL
;
78 gint32
ves_icall_System_Diagnostics_Process_GetPriorityClass (HANDLE process
, gint32
*error
) MONO_INTERNAL
;
79 MonoBoolean
ves_icall_System_Diagnostics_Process_SetPriorityClass (HANDLE process
, gint32 priority_class
, gint32
*error
) MONO_INTERNAL
;
80 gint64
ves_icall_System_Diagnostics_Process_GetProcessData (int pid
, gint32 data_type
, gint32
*error
) MONO_INTERNAL
;
82 HANDLE
ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate (HANDLE process
);
83 void ves_icall_System_Diagnostics_Process_ProcessHandle_close (HANDLE process
);
87 #endif /* _MONO_METADATA_PROCESS_H_ */