다음을 통해 공유


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

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

통사론

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

매개 변수

[in] Server

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

[in, optional] CommandLine

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

[in] CreateFlags

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

[in] ProcessId

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

[in] AttachFlags

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

반환 값

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

반환 코드 묘사
S_OK
메서드가 성공했습니다.

발언

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

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

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

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

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 dbgeng.h(Dbgeng.h 포함)

참고 항목

.attach(프로세스에 연결)

.create(프로세스 만들기)

AbandonCurrentProcess

attachProcess

ConnectProcessServer

createProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess