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