共用方式為


IHostAssemblyStore::ProvideModule 方法

解析組件內或連結的 (但非內嵌) 資源檔內的模組。

HRESULT ProvideModule (
    [in]  ModuleBindInfo *pBindInfo,
    [out] DWORD          *pdwModuleId,
    [out] IStream        **ppStmModuleImage,
    [out] IStream        **ppStmPDB
);

參數

  • pBindInfo
    [in] ModuleBindInfo 執行個體的指標,其描述所要求之模組的 AppDomain、組件和模組名稱。

  • pdwModuleId
    [out] 包含已載入模組之 IStream 的唯一識別項指標。

  • ppStmModuleImage
    [out] IStream 物件的位址指標,其包含要載入的可攜式執行檔 (PE) 映像,如果找不到模組,則為 null。

  • ppStmPDB
    [out] IStream 物件的位址指標,包含所要求之模組的程式偵錯 (PDB) 資訊,如果找不到 .pdb 檔,則為 null。

傳回值

HRESULT

描述

S_OK

ProvideModule 已成功傳回。

HOST_E_CLRNOTAVAILABLE

Common Language Runtime (CLR) 尚未載入至處理序中,或者此 CLR 目前的狀態無法執行 Managed 程式碼或成功處理呼叫。

HOST_E_TIMEOUT

呼叫已逾時。

HOST_E_NOT_OWNER

呼叫端不具備鎖定功能。

HOST_E_ABANDONED

已封鎖執行緒或 Fiber 在等候事件時,該事件已遭取消。

E_FAIL

發生未知的重大錯誤。 當方法傳回 E_FAIL 時,便無法在處理序內使用 CLR。 對裝載方法的後續呼叫會傳回 HOST_E_CLRNOTAVAILABLE。

ERROR_FILE_NOT_FOUND

找不到要求的組件或連結的資源。

ERROR_INSUFFICIENT_BUFFER

pdwModuleId 不夠大,無法容納主應用程式想要傳回的識別項。

備註

針對 pdwModuleId 所傳回的識別值是主應用程式所指定。 識別項在處理序的存留期內必須是唯一的。 CLR 會使用此值做為關聯資料流的唯一識別項。 它會針對 ProvideAssembly 的呼叫所傳回的 pAssemblyId 值以及其他的 ProvideModule 呼叫所傳回的 pdwModuleId 值檢查每一個值。 如果主應用程式對另一個 IStream 傳回相同的識別項值,則 CLR 會檢查是否已經對應該資料流的內容。 如果已經對應,則 CLR 會載入映像的現有複本,而不會對應新的複本。 因此,此識別項也不能與從 ProvideAssembly 傳回的組件識別項重疊。

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**MSCorEE.h

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

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

請參閱

參考

ICLRAssemblyReferenceList 介面

IHostAssemblyManager 介面

IHostAssemblyStore 介面