共用方式為


IHostAssemblyStore::ProvideAssembly 方法

取得對 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] IStream 的位址指標,其中包含要載入的可攜式可執行檔 (PE) 映像,如果找不到組件,則為 null。

ppStmPDB
[out] IStream 的位址指標,其中包含程式偵錯 (PDB) 資訊,如果找不到 .pdb 檔案,則為 null。

傳回值

HRESULT 描述
S_OK ProvideAssembly 已成功傳回。
HOST_E_CLRNOTAVAILABLE CLR 尚未載入處理序,或 CLR 處於無法執行受控程式碼或成功處理呼叫的狀態。
HOST_E_TIMEOUT 呼叫逾時。
HOST_E_NOT_OWNER 呼叫端未擁有鎖定。
HOST_E_ABANDONED 封鎖的執行緒或 Fiber 在其上等候時,事件遭到取消。
E_FAIL 發生未知的重大失敗。 如果方法傳回 E_FAIL,則 CLR 就無法再用於處理序。 後續對裝載方法發出的呼叫會傳回 HOST_E_CLRNOTAVAILABLE。
COR_E_FILENOTFOUND (0x80070002) 無法找到要求的組件。
E_NOT_SUFFICIENT_BUFFER pAssemblyId 所指定的緩衝區大小不夠大,無法保存主機想要傳回的識別碼。

備註

針對 pAssemblyId 傳回的識別值是由主機指定。 識別碼在處理序的存留期內必須是唯一的。 CLR 會使用此值作為資料流的唯一識別碼。 它會針對其他 ProvideAssembly 呼叫所傳回的 pAssemblyId 值,檢查每個值。 如果主機針對另一個 pAssemblyId 傳回相同的 IStream 值,CLR 會檢查是否已對應該資料流的內容。 若是如此,執行階段會載入影像的現有複本,而不是對應新的複本。

規格需求

平台:請參閱系統需求

標題: MSCorEE.h

程式庫:包含作為 MSCorEE.dll 中的資源

.NET Framework版本:自 2.0 起可用

另請參閱