ICLRMetaHost::RequestRuntimeLoadedNotification 方法
在首次加载 CLR 版本但尚未启动它时,提供一个一定会调用的回调函数。 此方法取代 LockClrVersion 函数。
HRESULT RequestRuntimeLoadedNotification (
[in] RuntimeLoadedCallbackFnPtr pCallbackFunction);
参数
- pCallbackFunction
[in] 在加载完新的运行时之后调用的回调函数。
返回值
此方法将返回以下特定的 HRESULT 以及用于指示方法失败的 HRESULT 错误。
HRESULT |
说明 |
---|---|
S_OK |
该方法成功完成。 |
E_POINTER |
pCallbackFunction 为 null。 |
备注
回调的工作方式如下:
仅当执行某个运行时的第一次加载时才调用回调。
执行相同运行时的重入加载时,不会调用回调。
对于非重入运行时加载,将序列化对回调函数的调用。
回调函数具有以下原型:
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