ICorDebug::CreateProcess 方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 方法的主要内容,如果未能解决你的问题,请参考以下文章