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