次の方法で共有


ICLRMetaHost::RequestRuntimeLoadedNotification メソッド

共通言語ランタイム (CLR) のバージョンが最初に読み込まれたとき、開始されなくても、コールバック関数が確実に呼び出されます。 このメソッドは LockClrVersion 関数よりも優先されます。

構文

HRESULT RequestRuntimeLoadedNotification (  
    [in] RuntimeLoadedCallbackFnPtr pCallbackFunction);  

パラメーター

pCallbackFunction
[入力] 新しいランタイムが読み込まれているときに呼び出されるコールバック関数。

戻り値

このメソッドは、次の特定の 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 は、スレッドがこのようなランタイム読み込みを引き起こさなくなったときに (そして、最初のコールバックから戻る前に) 呼び出す必要があります。

  • pfnCallbackThreadSetpfnCallbackThreadUnset はどちらも再入不可能です。

Note

ホスト アプリケーションでは、pCallbackFunction パラメーターの範囲外で pfnCallbackThreadSetpfnCallbackThreadUnset を呼び出すことはできません。

必要条件

:システム要件」を参照してください。

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 4 以降で使用可能

関連項目