ICLRDebuggingLibraryProvider2::ProvideLibrary2 方法

可讓偵錯工具提供版本特有通用語言執行平台 (CLR) 偵錯程式庫的路徑。

語法

HRESULT ProvideLibrary2 (
     [in] const WCHAR* pwszFileName,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] LPWSTR* ppResolvedModulePath);

參數

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

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

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

ppResolvedModulePath
[out] 這是模組 dll 的 null 終止路徑。 在 Windows 上應透過 CoTaskMemAlloc 配置。 在 Unix 上應透過 malloc 配置。 若失敗了,則不會有任何改變。 請參閱下方的安全性注意事項!

傳回值

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

HRESULT 描述
S_OK 已成功完成命令。

備註

ProvideLibrary2 可讓偵錯工具提供偵錯特定 CLR 檔案所需的模組,例如 mscordbi.dll 與 mscordacwks.dll。

偵錯工具可利用任何可用方法來尋找或採購偵錯模組。

重要

這項功能可讓 API 呼叫端提供包含可執行檔與可能為惡意程式碼的模組。 作為安全預防措施,呼叫端不得使用 ProvideLibrary2 來散發其不願意自行執行的任何程式碼。

如果在已發行的程式庫中發現嚴重的安全性問題,例如 mscordbi.dll 或 mscordacwks.dll,則可修補填充碼,以識別檔案的不良版本。 然後,填充碼可對檔案的修補版本發出要求,並在不良版本因回應任何要求而提供時,拒絕不良版本。 只有在使用者已修補為新版填充碼時,才會發生此情況。 未修補的版本仍然易受攻擊。

需求

平台:請參閱 .NET 支援的作業系統

標題:dbgshim.h

程式庫:dbgshim.dll、libdbgshim.so、libdbgshim.dylib

.NET 版本: 自 .NET Core 2.1 起提供