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] 指向用于指定进程安全描述符的 Win32 SECURITY_ATTRIBUTES 结构的指针。 如果 lpProcessAttributes 为 null,则进程将获取默认的安全描述符。

lpThreadAttributes
[in] 指向 Win32 SECURITY_ATTRIBUTES 结构的指针,该结构指定进程主线程的安全描述符。 如果 lpThreadAttributes 为 null,则线程将获取默认的安全描述符。

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

dwCreationFlags
[in] Win32 进程创建标志的位组合,这些标志控制优先级类以及已启动进程的行为。

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

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

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

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

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

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

备注

此方法的参数与 Win32 CreateProcess 方法的参数相同。

若要启用非托管混合模式调试,请将 dwCreationFlags 设置为 DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS。 如果只想使用托管调试,请不要设置这些标志。

如果调试器和要调试的进程(附加的进程)共享一个控制台,并且使用互操作调试,则附加的进程可能会持有控制台锁并在发生调试事件时停止。 然后,调试器将阻止任何使用控制台的尝试。 若要避免此问题,请在 dwCreationFlags 参数中设置 CREATE_NEW_CONSOLE 标志。

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

要求

平台:请参阅系统要求

标头:CorDebug.idl、CorDebug.h

库:CorGuids.lib

.NET Framework 版本:自 1.0 起可用

请参阅