다음을 통해 공유


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

CreateProcessAndAttachWide 메서드는 지정된 명령줄에서 프로세스를 만든 다음 다른 사용자 모드 프로세스에 연결합니다. 생성된 프로세스는 일시 중단되며 연결이 완료된 경우에만 실행할 수 있습니다. 이렇게 하면 클라이언트 및 서버 프로세스를 디버깅할 때 대략적인 동기화가 가능합니다.

구문

HRESULT CreateProcessAndAttachWide(
  [in]           ULONG64 Server,
  [in, optional] PWSTR   CommandLine,
  [in]           ULONG   CreateFlags,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

매개 변수

[in] Server

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

[in, optional] CommandLine

새 프로세스를 만들기 위해 실행할 명령줄을 지정합니다. CommandLineNULL이면 AttachProcess처럼 프로세스가 만들어지지 않고 이러한 메서드가 기존 프로세스에 연결됩니다.

[in] CreateFlags

프로세스를 만들 때 사용할 플래그를 지정합니다. 이러한 플래그에 대한 자세한 내용은 DEBUG_CREATE_PROCESS_OPTIONS. CreateFlags.

[in] ProcessId

디버거가 연결할 대상 프로세스의 프로세스 ID를 지정합니다. ProcessId가 0이면 디버거가 CommandLine에서 만든 프로세스에 연결됩니다.

[in] AttachFlags

디버거가 대상 프로세스에 연결하는 방법을 제어하는 플래그를 지정합니다. 이러한 플래그에 대한 자세한 내용은 DEBUG_ATTACH_XXX 참조하세요.

반환 값

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

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

설명

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

CommandLineNULL이 아니고 ProcessId가 0이 아닌 경우 엔진은 일시 중단된 상태로 프로세스를 만듭니다. 엔진은 ProcessId에 지정된 프로세스에 성공적으로 연결한 후 새로 만든 이 프로세스를 다시 시작합니다.

WaitForEvent 메서드가 호출될 때까지 엔진이 프로세스에 완전히 연결되지 않습니다. 프로세스에서 이벤트(예: create-process 이벤트)를 생성한 후에만 디버거 세션에서 사용할 수 있게 됩니다.

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

요구 사항

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

추가 정보

.attach(프로세스에 연결)

.create(프로세스 만들기)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess