ICLRMetaHost::RequestRuntimeLoadedNotification 메서드

CLR(공용 언어 런타임) 버전이 처음 로드되었지만 아직 시작되지 않은 경우 호출되도록 보장되는 콜백 함수를 제공합니다. 이 메서드는 LockClrVersion 함수를 대체합니다.

구문

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

매개 변수

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

Return Value

이 메서드는 다음과 같은 특정 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)();  
    

호스트가 다른 런타임을 로드하거나 재진입 방식으로 로드되도록 하려는 경우 콜백 함수에 제공되는 pfnCallbackThreadSetpfnCallbackThreadUnset 매개 변수를 다음과 같은 방법으로 사용해야 합니다.

  • pfnCallbackThreadSet은 이러한 로드를 시도하기 전에 런타임 로드를 유발할 수 있는 스레드에서 호출되어야 합니다.

  • pfnCallbackThreadUnset은 스레드가 더 이상 이러한 런타임 로드를 일으키지 않을 때 초기 콜백에서 반환하기 전에 호출해야 합니다.

  • pfnCallbackThreadSetpfnCallbackThreadUnset은 둘 다 재진입 방식이 아닙니다.

참고

호스트 애플리케이션은 pCallbackFunction 매개 변수의 범위 밖에서 pfnCallbackThreadSetpfnCallbackThreadUnset을 호출하면 안 됩니다.

요구 사항

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

헤더: MetaHost.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

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

참고 항목