Метод 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
Указывает сервер обработки, используемый для присоединения к процессу. Если сервер равен нулю, подсистема будет подключаться к локальному процессу без использования сервера обработки.
[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. Каждая строка имеет следующий вид:
name=value
Обратите внимание, что два последних символа блока среды имеют значение NULL: один для завершения строки и один для завершения блока.
Если параметр Environment имеет значение NULL, новый процесс наследует блок среды сервера обработки. Если флаг DEBUG_CREATE_PROCESS_THROUGH_RTL задан в разделе ПараметрыBuffer, то значение Environment должно иметь значение NULL.
[in] ProcessId
Указывает идентификатор целевого процесса, к которому будет подключаться отладчик. Если значение ProcessID равно нулю, отладчик подключится к процессу, созданному из CommandLine.
[in] AttachFlags
Указывает флаги, управляющие способом присоединения отладчика к целевому процессу. Дополнительные сведения об этих флагах см. в разделе DEBUG_ATTACH_XXX.
Возвращаемое значение
Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Возвращается, если CommandLine имеет значение NULL , а ProcessId равно нулю. |
Комментарии
Этот метод доступен только для динамической отладки в пользовательском режиме.
Если значение CommandLine не равно NULL , а Значение ProcessId не равно нулю, подсистема создаст процесс в приостановленном состоянии. Подсистема возобновит этот вновь созданный процесс после успешного подключения к процессу, указанному в ProcessId.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h) |