Метод ICorDebug::CreateProcess

Запускает процесс и его основной поток под управлением отладчика.

Синтаксис

HRESULT CreateProcess (  
    [in]  LPCWSTR                     lpApplicationName,  
    [in]  LPWSTR                      lpCommandLine,  
    [in]  LPSECURITY_ATTRIBUTES       lpProcessAttributes,  
    [in]  LPSECURITY_ATTRIBUTES       lpThreadAttributes,  
    [in]  BOOL                        bInheritHandles,  
    [in]  DWORD                       dwCreationFlags,  
    [in]  PVOID                       lpEnvironment,  
    [in]  LPCWSTR                     lpCurrentDirectory,  
    [in]  LPSTARTUPINFOW              lpStartupInfo,  
    [in]  LPPROCESS_INFORMATION       lpProcessInformation,  
    [in]  CorDebugCreateProcessFlags  debuggingFlags,  
    [out] ICorDebugProcess            **ppProcess  
);  

Параметры

lpApplicationName
[in] Указатель на строку, завершающуюся значением NULL, которая указывает модуль, который будет выполняться запущенным процессом. Модуль выполняется в контексте безопасности вызывающего процесса.

lpCommandLine
[in] Указатель на строку, завершающуюся значением NULL, которая указывает командную строку, выполняемую запущенным процессом. Имя приложения (например, "SomeApp.exe") должно быть первым аргументом.

lpProcessAttributes
[in] Указатель на структуру Win32 SECURITY_ATTRIBUTES , задающую дескриптор безопасности для процесса. Если lpProcessAttributes имеет значение NULL, процесс получает дескриптор безопасности по умолчанию.

lpThreadAttributes
[in] Указатель на структуру Win32 SECURITY_ATTRIBUTES , задающую дескриптор безопасности для основного потока процесса. Если lpThreadAttributes имеет значение NULL, поток получает дескриптор безопасности по умолчанию.

bInheritHandles
[in] Задайте значение , true чтобы указать, что каждый наследуемый дескриптор в вызывающем процессе наследуется запущенным процессом, или false чтобы указать, что дескриптор не наследуется. Унаследованные дескрипторы имеют те же значения и права доступа, что и исходные дескрипторы.

dwCreationFlags
[in] Побитовое сочетание флагов создания процессов Win32 , которые управляют классом приоритета и поведением запущенного процесса.

lpEnvironment
[in] Указатель на блок среды для нового процесса.

lpCurrentDirectory
[in] Указатель на строку, завершающуюся значением NULL, которая указывает полный путь к текущему каталогу для процесса. Если этот параметр имеет значение NULL, новый процесс будет иметь тот же текущий диск и каталог, что и вызывающий процесс.

lpStartupInfo
[in] Указатель на структуру Win32STARTUPINFOW, которая указывает станцию окон, рабочий стол, стандартные дескриптора и внешний вид окна main для запущенного процесса.

lpProcessInformation
[in] Указатель на структуру Win32 PROCESS_INFORMATION , которая указывает идентификационные сведения о процессе, который необходимо запустить.

debuggingFlags
[in] Значение перечисления CorDebugCreateProcessFlags, указывающее параметры отладки.

ppProcess
[out] Указатель на адрес объекта ICorDebugProcess, представляющего процесс.

Комментарии

Параметры этого метода совпадают с параметрами метода Win32 CreateProcess .

Чтобы включить неуправляемую отладку в смешанном режиме, задайте значение dwCreationFlags DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. Если вы хотите использовать только управляемую отладку, не устанавливайте эти флаги.

Если отладчик и отлаживаемый процесс (присоединенный процесс) совместно используют одну консоль и используется отладка взаимодействия, присоединенный процесс может удерживать блокировки консоли и останавливаться на событии отладки. Затем отладчик заблокит любые попытки использования консоли. Чтобы избежать этой проблемы, установите флаг CREATE_NEW_CONSOLE в параметре dwCreationFlags .

Отладка взаимодействия не поддерживается на платформах Win9x и не x86, таких как IA-64 и AMD64.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

платформа .NET Framework версии: доступно с версии 1.0.

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