Метод IDebugClient4::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

Указывает командную строку, выполняемую для создания нового процесса. Если commandLine имеет значение NULL, процесс не создается, и эти методы присоединяют к существующему процессу, как это делает AttachProcess .

[in] CreateFlags

Указывает флаги, используемые при создании процесса. Дополнительные сведения об этих флагах см. в разделе DEBUG_CREATE_PROCESS_OPTIONS. CreateFlags.

[in] ProcessId

Указывает идентификатор целевого процесса, к котором будет присоединен отладчик. Если значение ProcessId равно нулю, отладчик подключится к процессу, созданному из командной строки.

[in] AttachFlags

Задает флаги, управляющие присоединением отладчика к целевому процессу. Дополнительные сведения об этих флагах см. в разделе DEBUG_ATTACH_XXX.

Возвращаемое значение

Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .

Код возврата Описание
S_OK
Метод выполнен успешно.

Комментарии

Этот метод доступен только для динамической отладки в пользовательском режиме.

Если значение CommandLine не равно NULL , а Значение ProcessId не равно нулю, обработчик создаст процесс в приостановленном состоянии. Подсистема возобновит этот вновь созданный процесс после успешного подключения к процессу, указанному в ProcessId.

Примечание Подсистема не полностью подключается к процессу, пока не будет вызван метод WaitForEvent . Только после того, как процесс сгенерировал событие , например событие процесса создания, оно становится доступным в сеансе отладчика.
 
Дополнительные сведения о создании и подключении к динамическим целевым объектам пользовательского режима см. в разделе Live User-Mode Targets.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h)

См. также раздел

.attach (присоединение к процессу)

.create (Create Process)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess