IDebugClient5::CreateProcessAndAttach2 方法 (dbgeng.h)
CreateProcessAndAttach2 方法从指定的命令行创建一个进程,然后附加到该进程或其他用户模式进程。
语法
HRESULT CreateProcessAndAttach2(
[in] ULONG64 Server,
[in, optional] PSTR CommandLine,
[in] PVOID OptionsBuffer,
[in] ULONG OptionsBufferSize,
[in, optional] PCSTR InitialDirectory,
[in, optional] PCSTR Environment,
[in] ULONG ProcessId,
[in] ULONG AttachFlags
);
参数
[in] Server
指定要用于附加到进程的进程服务器。 如果 Server 为零,引擎将在不使用进程服务器的情况下连接到本地进程。
[in, optional] CommandLine
指定要执行以创建新进程的命令行。 如果 CommandLine 为 NULL,则不会创建任何进程,并且这些方法将使用 ProcessId 附加到现有进程。
[in] OptionsBuffer
指定进程创建选项。 OptionsBuffer 是指向 DEBUG_CREATE_PROCESS_OPTIONS 结构的指针。
[in] OptionsBufferSize
指定缓冲区 OptionsBuffer 的大小。 这应设置为 sizeof (DEBUG_CREATE_PROCESS_OPTIONS) 。
[in, optional] InitialDirectory
指定进程的起始目录。 仅当 CommandLine 不为 NULL 时,才使用此参数。 如果 InitialDirectory 为 NULL,则使用进程服务器的当前目录。
[in, optional] Environment
为新进程指定环境块。 环境块由以 null 结尾的字符串组成的以 null 结尾的块组成。 每个字符串的格式如下:
name=value
请注意,环境块的最后两个字符都是 NULL:一个字符用于终止字符串,另一个字符用于终止块。
如果 Environment 设置为 NULL,则新进程将继承进程服务器的环境块。 如果在 OptionsBuffer 中设置了DEBUG_CREATE_PROCESS_THROUGH_RTL标志,则 Environment 必须为 NULL。
[in] ProcessId
指定调试器将附加到的目标进程的进程 ID。 如果 ProcessID 为零,调试器将附加到它从 CommandLine 创建的进程。
[in] AttachFlags
指定用于控制调试器如何附加到目标进程的标志。 有关这些标志的详细信息,请参阅 DEBUG_ATTACH_XXX。
返回值
此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值 。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
如果 CommandLine 为 NULL 且 ProcessId 为零,则返回此值。 |
注解
此方法仅适用于实时用户模式调试。
如果 CommandLine 不为 NULL 且 ProcessId 不为零,则引擎将创建处于挂起状态的进程。 引擎将在成功连接到 ProcessId 中指定的进程后恢复此新创建的进程。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |