ICLRDebuggingLibraryProvider::ProvideLibrary 方法
取得程式庫提供者回撥介面,以便視需要尋找並載入通用語言執行平台 (CLR) 特定版本的偵錯程式庫。
語法
HRESULT ProvideLibrary(
[in] const WCHAR* pwszFileName,
[in] DWORD dwTimestamp,
[in] DWORD dwSizeOfImage,
[out] HMODULE* hModule);
參數
pwszFilename
[輸入] 所要求的模組名稱。
dwTimestamp
[輸入] 儲存在 PE 檔案的 COFF 檔案標頭中的日期時間戳記。
dwSizeOfImage
[輸入] 儲存在 PE 檔案的 COFF 選用檔案標頭的 SizeOfImage
欄位。
hModule
[輸出] 所要求模組的控制代碼。
傳回值
這個方法會傳回下列特定的 HRESULT,以及表示方法失敗的 HRESULT 錯誤。
HRESULT | 描述 |
---|---|
S_OK | 已成功完成命令。 |
例外
備註
ProvideLibrary
可讓偵錯工具提供偵錯特定 CLR 檔案所需的模組,例如 mscordbi.dll 與 mscordacwks.dll。 模組控制代碼必須維持有效狀態,直到 ICLRDebugging::CanUnloadNow 方法的呼叫指出其可能已釋放,此時呼叫者必須負責釋放控制代碼。
偵錯工具可利用任何可用方法來尋找或採購偵錯模組。
重要
這項功能可讓 API 呼叫端提供包含可執行檔與可能為惡意程式碼的模組。 作為安全預防措施,呼叫端不得使用 ProvideLibrary
來散發其不願意自行執行的任何程式碼。
如果在已發行的程式庫中發現嚴重的安全性問題,例如 mscordbi.dll 或 mscordacwks.dll,則可修補填充碼,以識別檔案的不良版本。 然後,填充碼可對檔案的修補版本發出要求,並在不良版本因回應任何要求而提供時,拒絕不良版本。 只有在使用者已修補為新版填充碼時,才會發生此情況。 未修補的版本仍然易受攻擊。
規格需求
平台:請參閱系統需求。
標頭:CorDebug.idl、CorDebug.h
程式庫:CorGuids.lib
.NET Framework版本:自 4 起可用