Метод IDebugClient3::CreateProcessAndAttachWide (dbgeng.h)

Метод CreateProcessAndAttachWide создает процесс из указанной командной строки, а затем подключается к другому процессу в пользовательском режиме. Созданный процесс приостанавливается и может выполняться только после завершения присоединения. Это обеспечивает приблизительную синхронизацию при отладке клиентских и серверных процессов.

Синтаксис

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

Параметры

[in] Server

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

[in, optional] CommandLine

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

[in] CreateFlags

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

[in] ProcessId

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

[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

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess