다음을 통해 공유


ICLRMetaHost::RequestRuntimeLoadedNotification 메서드

CLR(공용 언어 런타임) 버전이 처음 로드되지만 아직 시작되지 않았을 때 호출되는 콜백 함수를 제공합니다. 이 메서드는 LockClrVersion 함수를 대체합니다.

HRESULT RequestRuntimeLoadedNotification (
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);

매개 변수

  • pCallbackFunction
    [in] 새 런타임이 로드되었을 때 호출되는 콜백 함수입니다.

반환 값

이 메서드는 메서드 오류를 나타내는 HRESULT 오류뿐만 아니라 다음과 같은 특정 HRESULT를 반환합니다.

HRESULT

설명

S_OK

메서드가 성공적으로 완료되었습니다.

E_POINTER

pCallbackFunction이 null입니다.

설명

콜백은 다음과 같은 방식으로 작동합니다.

  • 런타임이 처음 로드된 경우에만 콜백이 호출됩니다.

  • 같은 런타임의 재진입 로드에 대해서는 콜백이 호출되지 않습니다.

  • 재진입이 아닌 런타임 로드의 경우 콜백 함수에 대한 호출이 serialize됩니다.

콜백 함수에는 다음과 같은 프로토타입이 있습니다.

typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)(
                     ICLRRuntimeInfo *pRuntimeInfo,
                     CallbackThreadSetFnPtr pfnCallbackThreadSet,
                     CallbackThreadUnsetFnPtr pfnCallbackThreadUnset);

콜백 함수 프로토타입은 다음과 같습니다.

  • pfnCallbackThreadSet:

    typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)();
    
  • pfnCallbackThreadUnset:

    typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)();
    

호스트가 재진입 방식으로 다른 런타임을 로드하는 경우 콜백 함수에 제공되는 pfnCallbackThreadSet 및 pfnCallbackThreadUnset 매개 변수는 다음과 같은 방식으로 사용되어야 합니다.

  • pfnCallbackThreadSet은 이러한 로드가 시도되기 전에 런타임 로드를 발생시킬 수 있는 스레드에 의해 호출되어야 합니다.

  • pfnCallbackThreadUnset은 스레드가 이러한 런타임 로드를 더 이상 발생시킬 수 없는 경우 초기 콜백에서 반환하기 전에 호출되어야 합니다.

  • pfnCallbackThreadSet과 pfnCallbackThreadUnset은 둘 다 재진입이 아닙니다.

참고참고

호스트 응용 프로그램에서는 pCallbackFunction 매개 변수의 범위를 벗어나서 pfnCallbackThreadSet 및 pfnCallbackThreadUnset을 호출해서는 안 됩니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: MetaHost.h

라이브러리: MSCorEE.dll에 리소스로 포함됨

.NET Framework 버전: 4

참고 항목

참조

ICLRMetaHost 인터페이스

기타 리소스

호스팅(관리되지 않는 API 참조)