public static extern NtStatus RtlCreateProcessParametersEx(
     [Out] out IntPtr pProcessParameters,
     [In] UnicodeString ImagePathName,
     [In] UnicodeString DllPath,
     [In] UnicodeString CurrentDirectory,
     [In] UnicodeString CommandLine,
     [In, MarshalAs(UnmanagedType.LPArray)] byte[] Environment,
     [In] UnicodeString WindowTitle,
     [In] UnicodeString DesktopInfo,
     [In] UnicodeString ShellInfo,
     [In] UnicodeString RuntimeData,
     CreateProcessParametersFlags Flags);
Exemple #2
0
 public static SafeProcessParametersBuffer Create(
     string image_path_name,
     string dll_path,
     string current_directory,
     string command_line,
     byte[] environment,
     string window_title,
     string desktop_info,
     string shell_info,
     string runtime_data,
     CreateProcessParametersFlags flags)
 {
     return(Create(image_path_name, dll_path, current_directory, command_line, environment,
                   window_title, desktop_info, shell_info, runtime_data, flags, true).Result);
 }
Exemple #3
0
 public static NtResult <SafeProcessParametersBuffer> Create(
     string image_path_name,
     string dll_path,
     string current_directory,
     string command_line,
     byte[] environment,
     string window_title,
     string desktop_info,
     string shell_info,
     string runtime_data,
     CreateProcessParametersFlags flags,
     bool throw_on_error)
 {
     return(NtRtl.RtlCreateProcessParametersEx(out IntPtr ret, GetString(image_path_name), GetString(dll_path), GetString(current_directory),
                                               GetString(command_line), environment, GetString(window_title), GetString(desktop_info), GetString(shell_info),
                                               GetString(runtime_data), flags).CreateResult(throw_on_error, () => new SafeProcessParametersBuffer(ret, true)));
 }