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