共用方式為


ICLRDebuggingLibraryProvider::ProvideLibrary 方法

取得程式庫提供者回呼介面,該介面可讓 Common Language Runtime (CLR) 版本特定的偵錯程式庫視需要來放置和載入。

    HRESULT ProvideLibrary(
         [in] const WCHAR* pwszFileName,
         [in] DWORD dwTimestamp,
         [in] DWORD dwSizeOfImage,
         [out] HMODULE* hModule);

參數

  • pwszFilename
    [in] 所要求的模組之名稱。

  • dwTimestamp
    [in] 儲存在 PE 檔案的 COFF 檔案標頭中的日期時間戳記。

  • pLibraryProvider
    [in] 儲存在 PE 檔案的 COFF 選擇性檔案標頭中的 SizeOfImage 欄位。

  • hModule
    [out] 要求之模組的控制代碼。

傳回值

這個方法會傳回下列特定的 HRESULT,以及表示方法失敗的 HRESULT 錯誤。

HRESULT

描述

S_OK

此方法已成功完成。

備註

ProvideLibrary 可讓偵錯工具提供在偵錯特定 CLR 檔案時所需的模組,例如 mscordbi.dll 和 mscordacwks.dll。 模組控制代碼必須維持為有效,直到呼叫 ICLRDebugging::CanUnloadNow 方法代表必須將這些控制代碼釋放,此時,呼叫端有責任釋放控制代碼。

偵錯程式可能會使用任何可行的方法來找出或取得偵錯模組。

重要事項重要事項

這項功能可讓 API 呼叫端提供內含可執行檔的模組,也可能會有惡意程式碼。以安全性措施而言,呼叫端不應該使用 ProvideLibrary 來散發任何無法自我執行的程式碼。

如果任何已釋放的程式庫 (例如 mscordbi.dll 或 mscordacwks.dll) 中發現了嚴重的安全性問題,則可以修補 Shim 以識別不適合的檔案版本。然後 Shim 可以發出修補版本的檔案要求,且如果有回應要求時,可以拒絕不適合的版本。只有當使用者修補新版的 Shim 後,才會發生這種情形。未經修補的版本仍容易受到攻擊。

需求

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

**標頭:**CorDebug.idl、CorDebug.h

**程式庫:**CorGuids.lib

**.NET Framework 版本:**4

請參閱

其他資源

偵錯介面

偵錯 (Unmanaged API 參考)