IDebugClient5::CreateProcess2 메서드(dbgeng.h)

CreateProcess2 메서드는 지정된 명령을 실행하여 새 프로세스를 만듭니다.

구문

HRESULT CreateProcess2(
  [in]           ULONG64 Server,
  [in]           PSTR    CommandLine,
  [in]           PVOID   OptionsBuffer,
  [in]           ULONG   OptionsBufferSize,
  [in, optional] PCSTR   InitialDirectory,
  [in, optional] PCSTR   Environment
);

매개 변수

[in] Server

프로세스에 연결할 프로세스 서버를 지정합니다. 서버가 0이면 엔진은 프로세스 서버를 사용하지 않고 로컬 프로세스를 만듭니다.

[in] CommandLine

새 프로세스를 만들기 위해 실행할 명령줄을 지정합니다.

[in] OptionsBuffer

프로세스 만들기 옵션을 지정합니다. OptionsBufferDEBUG_CREATE_PROCESS_OPTIONS 구조체에 대한 포인터입니다.

[in] OptionsBufferSize

버퍼 옵션 버퍼의 크기를 지정합니다. sizeof(DEBUG_CREATE_PROCESS_OPTIONS)로 설정해야 합니다.

[in, optional] InitialDirectory

프로세스의 시작 디렉터리를 지정합니다. InitialDirectoryNULL이면 프로세스 서버의 현재 디렉터리가 사용됩니다.

[in, optional] Environment

새 프로세스에 대한 환경 블록을 지정합니다. 환경 블록은 null로 끝나는 null 종료 문자열 블록으로 구성됩니다. 각 문자열은 다음과 같은 형식입니다.

name=value

환경 블록의 마지막 두 문자는 모두 NULL입니다. 하나는 문자열을 종료하고 다른 하나는 블록을 종료합니다.

EnvironmentNULL로 설정된 경우 새 프로세스는 프로세스 서버의 환경 블록을 상속합니다. DEBUG_CREATE_PROCESS_THROUGH_RTL 플래그가 OptionsBuffer에 설정된 경우 환경NULL이어야 합니다.

반환 값

이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값을 참조하세요.

반환 코드 Description
S_OK
메서드를 성공적으로 수행했습니다.

설명

이 메서드는 라이브 사용자 모드 디버깅에만 사용할 수 있습니다.

CreateFlags에 DEBUG_PROCESS 또는 DEBUG_ONLY_THIS_PROCESS 플래그가 포함되어 있으면 엔진도 새로 만든 프로세스에 연결됩니다. 이는 인수 ProcessId가 0으로 설정된 CreateProcessAndAttach2의 동작과 유사합니다.

라이브 사용자 모드 대상을 만들고 연결하는 방법에 대한 자세한 내용은 라이브 User-Mode 대상을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 dbgeng.h(Dbgeng.h 포함)

추가 정보

.create(프로세스 만들기)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient5

TerminateCurrentProcess