首页 > 代码库 > ICorDebug::CreateProcess 方法

ICorDebug::CreateProcess 方法

启动进程,且受调试器控制及其主线程.

HRESULT CreateProcess (      [in]  LPCWSTR                     lpApplicationName,      [in]  LPWSTR                      lpCommandLine,      [in]  LPSECURITY_ATTRIBUTES       lpProcessAttributes,      [in]  LPSECURITY_ATTRIBUTES       lpThreadAttributes,      [in]  BOOL                        bInheritHandles,      [in]  DWORD                       dwCreationFlags,      [in]  PVOID                       lpEnvironment,      [in]  LPCWSTR                     lpCurrentDirectory,      [in]  LPSTARTUPINFOW              lpStartupInfo,      [in]  LPPROCESS_INFORMATION       lpProcessInformation,      [in]  CorDebugCreateProcessFlags  debuggingFlags,      [out] ICorDebugProcess            **ppProcess  );  

  

参数

lpApplicationName
[in]以 null 结尾的字符串,指定要由启动的进程执行的模块的指针。 调用进程的安全上下文中执行模块。

lpCommandLine
[in]以 null 结尾的字符串,指定用于启动进程所执行的命令行的指针。 应用程序名称 (例如,"SomeApp.exe") 必须是第一个参数。

lpProcessAttributes
[in]指向 Win32SECURITY_ATTRIBUTES结构,它指定该进程的安全描述符。 如果lpProcessAttributes是 null,则该进程获取的默认安全描述符。

lpThreadAttributes
[in]指向 Win32SECURITY_ATTRIBUTES结构,它指定进程的主线程的安全描述符。 如果lpThreadAttributes是 null,该线程将获取的默认安全描述符。

bInheritHandles
[in]设置为true以指示的启动过程中,将继承调用进程中的每个可继承句柄或false以指示不继承句柄。 继承句柄具有与原始句柄相同的值和访问权限。

dwCreationFlags
[in]按位组合Win32 进程创建标志用于控制优先级类和启动过程的行为。

lpEnvironment
[in]指向新进程环境块的指针。

lpCurrentDirectory
[in]以 null 结尾的字符串,指定进程的当前目录的完整路径的指针。 如果此参数为 null,新进程将与调用的进程具有相同的当前驱动器和目录。

lpStartupInfo
[in]指向 Win32STARTUPINFOW结构,它指定窗口站、 桌面、 标准句柄和启动进程的主窗口的外观。

lpProcessInformation
[in]指向 Win32PROCESS_INFORMATION结构,它指定有关要启动该进程的标识信息。

debuggingFlags
[in]CorDebugCreateProcessFlags 枚举,用于指定调试选项的值。

ppProcess
[out]ICorDebugProcess 对象表示该进程的地址指针。

备注
 
 
 

此方法的参数都是不同于 Win32CreateProcess方法。

若要启用非托管的混合模式调试,请设置dwCreationFlags到 DEBUG_PROCESS |DEBUG_ONLY_THIS_PROCESS。 如果您想要使用仅托管调试,则不要设置这些标志。

如果调试程序和进程要调试 (附加的进程) 共享的单一控制台中,并使用互操作调试时,是否可以附加进程持有控制台锁并在调试事件处停止。 调试器将会一直阻止使用控制台的任何尝试。 若要避免此问题,在设置 CREATE_NEW_CONSOLE 标志dwCreationFlags参数。

例如-基于 IA-64 和 AMD64 基于平台 Win9x 和非 x86 平台上不支持互操作调试。

要求
 

平台︰请参阅系统要求。

标头︰ CorDebug.idl、 CorDebug.h

库︰ CorGuids.lib

.NET framework 版本︰自 1.0 之后可用

  

ICorDebug::CreateProcess 方法