會從 IHostAssemblyManager::GetNonHostStoreAssemblyBassemblies 回傳一個 ICLRAssemblyReferenceList 未引用的組件。 每個未出現在清單中的組合語言,則是通用語言執行時(CLR)呼叫 ProvideAssembly 。
語法
HRESULT ProvideAssembly (
[in] AssemblyBindInfo *pBindInfo,
[out] UINT64 *pAssemblyId,
[out] UINT64 *pHostContext,
[out] IStream **ppStmAssemblyImage,
[out] IStream **ppStmPDB
);
參數
pBindInfo [在]一個指向 AssemblyBindInfo 實例的指標,主機用來判斷某些綁定特性,包括是否有版本控制政策,以及要綁定哪個組裝裝置。
pAssemblyId [出]指向該組合 IStream的唯一識別碼指標。
pHostContext [出]一個指向主機特定資料的指標,用於判斷所請求組裝的證據,無需平台呼叫。
pHostContext 對應 HostContext 於受管理 Assembly 類別的屬性。
ppStmAssemblyImage [出]指向包含可攜式可執行檔(PE)映像檔的位址 IStream 指標,若找不到組合語言則為空指標。
ppStmPDB [出]一個指向包含程式除錯(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 身份值由主機指定。 識別碼必須在程序的生命週期內保持唯一。 CLR 使用此值作為串流的唯一識別碼。 它會將每個值與其他呼叫ProvideAssembly回傳的值pAssemblyId進行檢查。 若主機對另一IStream台 回傳相同pAssemblyId值,CLR 會檢查該串流的內容是否已被映射。 如果是這樣,執行時會載入現有的映像檔,而不是映射新的。
要求
平台:請參閱系統需求。
標題: MSCorEE.h
圖書館: MSCorEE.dll 中納入資源
.NET Framework 版本: 自 2.0 起可用