IDebugClient3::CreateProcessAndAttach 方法 (dbgeng.h)

CreateProcessAndAttach 方法从指定的命令行创建进程,然后附加到另一个用户模式进程。 创建的进程将暂停,仅允许在附加完成后执行。 这允许在调试客户端和服务器进程时进行粗略同步。

语法

HRESULT CreateProcessAndAttach(
  [in]           ULONG64 Server,
  [in, optional] PSTR    CommandLine,
  [in]           ULONG   CreateFlags,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

参数

[in] Server

指定要用于附加到进程的进程服务器。 如果 Server 为零,引擎将在不使用进程服务器的情况下连接到本地进程。

[in, optional] CommandLine

指定要执行以创建新进程的命令行。 如果 CommandLineNULL,则不会创建任何进程,并且这些方法会像 AttachProcess 一样附加到现有进程。

[in] CreateFlags

指定创建进程时要使用的标志。 有关这些标志的详细信息,请参阅 DEBUG_CREATE_PROCESS_OPTIONSCreateFlags

[in] ProcessId

指定调试器将附加到的目标进程的进程 ID。 如果 ProcessId 为零,调试器将附加到它从 CommandLine 创建的进程。

[in] AttachFlags

指定用于控制调试器如何附加到目标进程的标志。 有关这些标志的详细信息,请参阅 DEBUG_ATTACH_XXX

返回值

此方法也可能返回错误值。 有关更多详细信息 ,请参阅返回值

返回代码 说明
S_OK
方法成功。

注解

此方法仅适用于实时用户模式调试。

如果 CommandLine 不为 NULLProcessId 不为零,则引擎将创建处于挂起状态的进程。 引擎将在成功连接到 ProcessId 中指定的进程后恢复此新创建的进程。

注意 在调用 WaitForEvent 方法之前,引擎不会完全附加到进程。 只有在进程生成事件(例如 create-process 事件)后,它才会在调试器会话中可用。
 
有关创建和附加到实时用户模式目标的详细信息,请参阅 实时 User-Mode 目标

要求

要求
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)

另请参阅

.attach(附加到进程)

.create(创建进程)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess