ICLRDebugging::OpenVirtualProcess 메서드
프로세스에 로드된 CLR(공용 언어 런타임) 모듈에 해당하는 ICorDebugProcess 인터페이스를 가져옵니다.
HRESULT OpenVirtualProcess(
[in] ULONG64 moduleBaseAddress,
[in] IUnknown * pDataTarget,
[in] ICLRDebuggingLibraryProvider * pLibraryProvider,
[in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
[in] REFIID riidProcess,
[out, iid_is(riidProcess)] IUnknown ** ppProcess,
[in, out] CLR_DEBUGGING_VERSION * pVersion,
[out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);
매개 변수
moduleBaseAddress
[in] 대상 프로세스에 있는 모듈의 기본 주소입니다. 지정된 모듈이 CLR 모듈이 아닐 경우 COR_E_NOT_CLR이 반환됩니다.pDataTarget
[in] 관리되는 디버거에서 프로세스 상태를 검사할 수 있도록 하는 데이터 대상 추상화입니다. 디버거에서는 ICorDebugDataTarget 인터페이스를 구현해야 합니다. 디버깅되는 CLR이 컴퓨터에 로컬로 설치되어 있지 않은 시나리오를 지원하려면 ICLRDebuggingLibraryProvider 인터페이스를 구현해야 합니다.pLibraryProvider
[in] 요청 시 버전별 디버깅 라이브러리를 찾아서 로드할 수 있는 라이브러리 공급자 콜백 인터페이스입니다. 이 매개 변수는 ppProcess 또는 pFlags가 null이 아닌 경우에만 필요합니다.pMaxDebuggerSupportedVersion
[in] 이 디버거에서 디버깅할 수 있는 CLR의 가장 높은 버전입니다. 이 디버거에서 지원하는 최신 CLR 버전의 주 버전, 부 버전 및 빌드 버전을 지정하고 이후의 내부 CLR 서비스 릴리스를 수용할 수 있도록 수정 번호를 65535로 설정해야 합니다.riidProcess
[in] 검색할 ICorDebugProcess 인터페이스의 ID입니다. 현재 허용되는 값은 IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 및 IID_CORDEBUGPROCESS뿐입니다.ppProcess
[out] riidProcess로 식별되는 COM 인터페이스에 대한 포인터입니다.pVersion
[in, out] CLR의 버전입니다. 입력 매개 변수의 경우 이 값은 null일 수 있습니다. 또한 이 포인터는 CLR_DEBUGGING_VERSION 구조체를 가리킬 수도 있는데, 이 경우 이 구조체의 wStructVersion 필드는 0으로 초기화되어야 합니다.출력 매개 변수의 경우 반환된 CLR_DEBUGGING_VERSION 구조체는 CLR의 버전 정보로 채워집니다.
pdwFlags
[out] 지정된 런타임에 대한 정보 플래그입니다. 이러한 플래그에 대한 자세한 내용은 CLR_DEBUGGING_PROCESS_FLAGS 항목을 참조하십시오.
반환 값
이 메서드는 메서드 오류를 나타내는 HRESULT 오류뿐만 아니라 다음과 같은 특정 HRESULT를 반환합니다.
HRESULT |
설명 |
---|---|
S_OK |
메서드가 성공적으로 완료되었습니다. |
E_POINTER |
pDataTarget는 null입니다. |
CORDBG_E_LIBRARY_PROVIDER_ERROR |
ICLRDebuggingLibraryProvider 콜백이 오류를 반환하거나 유효한 핸들을 제공하지 않습니다. |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE |
pDataTarget이 이 런타임 버전에 필요한 데이터 대상 인터페이스를 구현하지 않습니다. |
CORDBG_E_NOT_CLR |
표시된 모듈이 CLR 모듈이 아닙니다. 이 HRESULT는 메모리가 손상되어 CLR 모듈을 검색할 수 없거나, CLR 모듈을 사용할 수 없거나, CLR 버전이 shim 버전보다 이후 버전인 경우에도 반환됩니다. |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL |
이 런타임 버전에서 이 디버깅 모델을 지원하지 않습니다. 현재 .NET Framework 버전 4 이전의 CLR 버전에서는 이 디버깅 모델을 지원하지 않습니다. pwszVersion 출력 매개 변수는 이 오류가 발생한 후에도 올바른 값으로 설정됩니다. |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT |
CLR의 버전이 이 디버거에서 지원해야 하는 버전보다 이후 버전입니다. pwszVersion 출력 매개 변수는 이 오류가 발생한 후에도 올바른 값으로 설정됩니다. |
E_NO_INTERFACE |
riidProcess 인터페이스를 사용할 수 없습니다. |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT |
CLR_DEBUGGING_VERSION 구조체에 wStructVersion에 대한 올바른 값이 없습니다. 현재 허용되는 값은 0뿐입니다. |
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: CorDebug.idl, CorDebug.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4