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)();
호스트가 다른 런타임을 로드하거나 재진입 방식으로 로드되도록 하려는 경우 콜백 함수에 제공되는 pfnCallbackThreadSet
및 pfnCallbackThreadUnset
매개 변수를 다음과 같은 방법으로 사용해야 합니다.
pfnCallbackThreadSet
은 이러한 로드를 시도하기 전에 런타임 로드를 유발할 수 있는 스레드에서 호출되어야 합니다.pfnCallbackThreadUnset
은 스레드가 더 이상 이러한 런타임 로드를 일으키지 않을 때 초기 콜백에서 반환하기 전에 호출해야 합니다.pfnCallbackThreadSet
및pfnCallbackThreadUnset
은 둘 다 재진입 방식이 아닙니다.
참고
호스트 애플리케이션은 pCallbackFunction
매개 변수의 범위 밖에서 pfnCallbackThreadSet
및 pfnCallbackThreadUnset
을 호출하면 안 됩니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: MetaHost.h
라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.
.NET Framework 버전: 4부터 사용 가능
참고 항목
.NET