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