다음을 통해 공유


ICorProfilerCallback2 인터페이스

프로파일러가 구독한 이벤트가 발생할 때 코드 프로파일러에 알리기 위해 CLR(공용 언어 런타임)에서 사용하는 메서드를 제공합니다. ICorProfilerCallback2 인터페이스는 ICorProfilerCallback 인터페이스의 확장입니다. 즉, .NET Framework 버전 2.0에 도입된 새로운 콜백을 제공합니다.

참고

각 메서드 구현은 성공 시 S_OK 값을, 실패 시 E_FAIL 값을 갖는 HRESULT를 반환해야 합니다. 현재 CLR은 ICorProfilerCallback::ObjectReferences를 제외한 각 콜백에서 반환되는 HRESULT를 무시합니다.

메서드

메서드 Description
FinalizeableObjectQueued 메서드 종료자가 있는 개체가 Finalize 메서드 실행을 위해 종료자 스레드에 대기되었음을 코드 프로파일러에 알립니다.
GarbageCollectionFinished 메서드 가비지 수집이 완료되었으며 모든 가비지 수집 콜백이 발급되었음을 프로파일러에 알릴 수 있습니다.
GarbageCollectionStarted 메서드 가비지 수집 핸들이 시작되었음을 코드 프로파일러에 알립니다.
HandleCreated 메서드 가비지 수집 핸들이 생성되었음을 코드 프로파일러에 알립니다.
HandleDestroyed 메서드 가비지 수집 핸들이 제거되었음을 코드 프로파일러에 알립니다.
RootReferences2 메서드 가비지 수집이 발생한 후 루트 참조에 대해 프로파일러에 알립니다. 이 메서드는 ICorProfilerCallback::RootReferences 메서드의 확장입니다.
SurvivingReferences 메서드 가비지 수집에서 살아남은 개체 참조에 대해 프로파일러에 알립니다.
ThreadNameChanged 메서드 코드 프로파일러에 스레드 이름이 변경되었음을 알립니다.

설명

CLR은 ICorProfilerCallback(또는 ICorProfilerCallback2) 인터페이스에서 메서드를 호출하여 프로파일러가 구독한 이벤트가 발생할 때 프로파일러에 알립니다. 이는 CLR이 코드 프로파일러와 통신하는 데 사용하는 기본 콜백 인터페이스입니다.

코드 프로파일러는 ICorProfilerCallback 인터페이스의 메서드를 구현해야 합니다. .NET Framework 2.0 이상 버전의 경우 프로파일러는 ICorProfilerCallback2 메서드도 구현해야 합니다. 각 메서드 구현은 성공 시 S_OK 값을, 실패 시 E_FAIL 값을 갖는 HRESULT를 반환해야 합니다. 현재 CLR은 ICorProfilerCallback::ObjectReferences를 제외한 각 콜백에서 반환되는 HRESULT를 무시합니다.

코드 프로파일러와 ICorProfilerCallbackICorProfilerCallback2 인터페이스를 구현하는 COM 개체는 Microsoft Windows 레지스트리에 등록되어야 합니다. 코드 프로파일러는 ICorProfilerInfo::SetEventMask를 호출하여 알림을 수신하려는 이벤트를 구독합니다. 이는 일반적으로 프로파일러의 ICorProfilerCallback::Initialize 구현에서 수행됩니다. 그러면 프로파일러는 이벤트가 발생하려고 하거나 실행 중인 런타임 프로세스에서 방금 발생했을 때 런타임에서 알림을 수신할 수 있습니다.

참고

프로파일러는 단일 COM 개체를 등록합니다. 프로파일러가 .NET Framework 버전 1.0 또는 1.1을 대상으로 하는 경우 해당 COM 개체는 ICorProfilerCallback의 메서드만 구현해야 합니다. .NET Framework 버전 2.0 이상을 대상으로 하는 경우 COM 개체는 ICorProfilerCallback2 메서드도 구현해야 합니다.

요구 사항

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

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

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

참고 항목