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 方法的主要内容,如果未能解决你的问题,请参考以下文章