次の方法で共有


ICLRMetaHost::RequestRuntimeLoadedNotification メソッド

共通言語ランタイム (CLR: Common Language Runtime) バージョンが最初に読み込まれたときに、起動前に必ず呼び出されるコールバック関数を提供します。 このメソッドは、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 は、スレッドでこのようなランタイムの呼び出しが行われなくなった場合に (および初期のコールバックから戻る前に) 呼び出す必要があります。

  • pfnCallbackThreadSet および pfnCallbackThreadUnset はどちらも再入不可能です。

メモメモ

ホスト アプリケーションは、pCallbackFunction パラメーターのスコープ外にある pfnCallbackThreadSet および pfnCallbackThreadUnset を呼び出すことはできません。

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして格納されていること

.NET Framework のバージョン: 4

参照

参照

ICLRMetaHost インターフェイス

その他の技術情報

ホスト (アンマネージ API リファレンス)