ICorDebug::CreateProcess 方法

更新:2007 年 11 月

在调试器的控制下启动进程及其主线程。

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 结尾的字符串的指针,该字符串指定要由已启动的进程执行的命令行。

  • lpProcessAttributes
    [in] 指向 Win32 SECURITY_ATTRIBUTES 结构的指针,该结构为进程指定安全说明符。如果 lpProcessAttributes 为 Null,则该进程将获取默认的安全描述符。

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

  • bInheritHandles
    [in] 设置为 true 指示调用进程中的每个可继承句柄都由已启动的进程继承;或者设置为 false 指示不继承这些句柄。继承的句柄与原始句柄具有相同的值和访问权限。

  • dwCreationFlags
    [in] Win32 Process Creation Flags(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 的平台)上不支持互操作调试。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorDebug.idl

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

参考

ICorDebug