Поделиться через


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

См. также