[.NET Framework 4.5.2 以降のバージョンでサポートされています]
共通言語ランタイムがアセンブリ参照クロージャ ウォークを実行するときに、アセンブリが非常に早い読み込み段階にあることをプロファイラーに通知します。
Syntax
HRESULT GetAssemblyReferences( [in, string] const WCHAR* wszAssemblyPath,
[in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider
);
Parameters
wszAssemblyPath [in]メタデータが変更されるアセンブリのパスと名前。
pAsmRefProvider [in]追加するアセンブリ参照を指定する ICorProfilerAssemblyReferenceProvider インターフェイスのアドレスへのポインター。
Return Value
このコールバックからの戻り値は無視されます。
Remarks
このコールバックは、ICorProfilerCallback5::SetEventMask2 メソッドを呼び出すときにCOR_PRF_HIGH_ADD_ASSEMBLY_REFERENCESイベント マスク フラグを設定することによって制御されます。 プロファイラーが ICorProfilerCallback6::GetAssemblyReferences コールバック メソッドに登録されている場合、ランタイムは読み込むアセンブリのパスと名前と、そのメソッドへの ICorProfilerAssemblyReferenceProvider インターフェイス オブジェクトへのポインターを渡します。 プロファイラーは、GetAssemblyReferences コールバックで指定されたアセンブリから参照する予定の各ターゲット アセンブリのCOR_PRF_ASSEMBLY_REFERENCE_INFO オブジェクトを使用して、ICorProfilerAssemblyReferenceProvider::AddAssemblyReference メソッドを呼び出すことができます。
GetAssemblyReferences コールバックは、プロファイラーがアセンブリのメタデータを変更してアセンブリ参照を追加する必要がある場合にのみ使用します。 (ただし、アセンブリのメタデータの実際の変更は 、ICorProfilerCallback::ModuleLoadFinishedコールバック メソッドで行われることに注意してください)。プロファイラーは、 GetAssemblyReferences コールバック メソッドを実装して、モジュールが読み込まれたときにアセンブリ参照が追加されることを共通言語ランタイム (CLR) に通知する必要があります。 これにより、プロファイラーは後でメタデータ アセンブリ参照を変更する予定ですが、この初期段階で CLR によって行われたアセンブリ共有の決定が有効なままになるようにします。 これにより、プロファイラーメタデータの変更によって SECURITY_E_INCOMPATIBLE_SHARE エラーが発生する一部のインスタンスを回避できます。
プロファイラーは、このメソッドによって提供される ICorProfilerAssemblyReferenceProvider オブジェクトを使用して、CLR アセンブリ参照クロージャーへのアセンブリ参照を追加します。
ICorProfilerAssemblyReferenceProvider オブジェクトは、このコールバック内からのみ使用する必要があります。 このコールバックから ICorProfilerAssemblyReferenceProvider::AddAssemblyReference メソッドを 呼び出しても、メタデータは変更されませんが、変更されたアセンブリ参照クロージャ ウォークでのみ行われます。 プロファイラーでは、 IMetaDataAssemblyEmit オブジェクトを使用して、参照元アセンブリの ICorProfilerCallback::ModuleLoadFinished コールバック内からアセンブリ参照を明示的に追加する必要があります ( GetAssemblyReferences コールバックが実装されている場合でも)。
プロファイラーは、同じアセンブリに対してこのコールバックに対して重複する呼び出しを受信するように準備する必要があり、このような重複する呼び出しごとに同じように応答する必要があります ( ICorProfilerAssemblyReferenceProvider::AddAssemblyReference 呼び出しの同じセットを作成します)。
Requirements
:「システム要件」を参照してください。
ヘッダ: CorProf.idl、CorProf.h
Library: CorGuids.lib
.NET Framework のバージョン: 4.5.2 以降で利用可能
See also
.NET