次の方法で共有


IHostAssemblyStore::P rovideAssembly メソッド

IHostAssemblyManager::GetNonHostStoreAssemblies から返される ICLRAssemblyReferenceList によって参照されていないアセンブリへの参照を取得します。 共通言語ランタイム (CLR) は、リストに表示されないアセンブリごとに ProvideAssembly を呼び出します。

構文

HRESULT ProvideAssembly (
    [in]  AssemblyBindInfo *pBindInfo,
    [out] UINT64           *pAssemblyId,
    [out] UINT64           *pHostContext,
    [out] IStream          **ppStmAssemblyImage,
    [out] IStream          **ppStmPDB
);

パラメーター

pBindInfo [in]バージョン管理ポリシーの有無、バインド先のアセンブリなど、特定のバインド特性を決定するためにホストが使用する AssemblyBindInfo インスタンスへのポインター。

pAssemblyId [out]この IStreamに対して要求されたアセンブリの一意識別子へのポインター。

pHostContext [out]プラットフォーム呼び出しを必要とせずに、要求されたアセンブリの証拠を決定するために使用されるホスト固有のデータへのポインター。 pHostContextは、マネージド Assembly クラスのHostContext プロパティに対応します。

ppStmAssemblyImage [out]読み込むポータブル実行可能ファイル (PE) イメージを含む IStream のアドレスへのポインター。アセンブリが見つからなかった場合は null。

ppStmPDB [out]プログラム デバッグ (PDB) 情報を含む IStream のアドレスへのポインター。.pdb ファイルが見つからなかった場合は null。

戻り値

HRESULT 説明
S_OK ProvideAssembly が正常に返されました。
HOST_E_CLRNOTAVAILABLE CLR がプロセスに読み込まれていないか、CLR がマネージド コードを実行できないか、呼び出しを正常に処理できない状態です。
HOST_E_TIMEOUT 通話がタイムアウトしました。
HOST_E_NOT_OWNER 呼び出し元はロックを所有していません。
HOST_E_ABANDONED ブロックされたスレッドまたはファイバーが待機している間にイベントが取り消されました。
E_FAIL 不明な致命的なエラーが発生しました。 メソッドがE_FAILを返すと、CLR はプロセス内で使用できなくなります。 後続のホスティング メソッドの呼び出しでは、HOST_E_CLRNOTAVAILABLEが返されます。
COR_E_FILENOTFOUND (0x80070002) 要求されたアセンブリが見つかりませんでした。
E_NOT_SUFFICIENT_BUFFER pAssemblyIdで指定されたバッファー サイズは、ホストが返す識別子を保持するのに十分な大きさではありません。

注釈

pAssemblyIdに返される ID 値は、ホストによって指定されます。 識別子は、プロセスの有効期間内に一意である必要があります。 CLR は、この値をストリームの一意識別子として使用します。 各値を、他のProvideAssembly呼び出しによって返されるpAssemblyIdの値と照合します。 ホストが別のIStreamに対して同じpAssemblyId値を返す場合、CLR はそのストリームの内容が既にマップされているかどうかを確認します。 その場合、ランタイムは新しいイメージをマッピングするのではなく、イメージの既存のコピーを読み込みます。

必要条件

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

ヘッダ: MSCorEE.h

図書館: MSCorEE.dll にリソースとして含まれる

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

こちらも参照ください