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를 무시합니다.
코드 프로파일러와 ICorProfilerCallback
및 ICorProfilerCallback2
인터페이스를 구현하는 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부터 사용 가능
참고 항목
.NET