Метод 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] Указатель на структуру Win32 STARTUPINFOW
, указывающую станцию окон, настольный компьютер, стандартные дескрипторы и внешний вид главного окна для запускаемого процесса.
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