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로 설정합니다. 관리되는 디버깅만 사용하려면 이러한 플래그를 설정하지 마세요.

디버거와 디버그할 프로세스(연결된 프로세스)가 단일 콘솔을 공유하고 interop 디버깅을 사용하는 경우, 연결된 프로세스에서 콘솔 잠금을 유지하고 디버그 이벤트에서 중지할 수 있습니다. 그러면 디버거가 콘솔을 사용하려는 시도를 차단합니다. 이 문제를 방지하려면 dwCreationFlags 매개 변수에서 CREATE_NEW_CONSOLE 플래그를 설정합니다.

Interop 디버깅은 Win9x 및 IA-64 기반 및 AMD64 기반 플랫폼과 같은 비 x86 플랫폼에서 지원되지 않습니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

.NET Framework 버전: 1.0부터 사용 가능

참고 항목