ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary 方法
取得程式庫提供者回撥介面,以便視需要尋找並載入通用語言執行平台 (CLR) 特定版本的偵錯程式庫。
語法
HRESULT ProvideWindowsLibrary (
[in] const WCHAR* pwszFileName,
[in] const WCHAR* pwszRuntimeModule,
[in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
[in] DWORD dwTimestamp,
[in] DWORD dwSizeOfImage,
[out] LPWSTR* ppResolvedModulePath);
參數
pwszFilename
[in] 所要求的模組名稱。
pwszRuntimeModule
[in] 執行階段或單一檔案模組路徑。
indexType
[in] 所提供的索引資訊型別 (dwTimestamp/dwSizeOfImage)。 請參閱 LIBRARY_PROVIDER_INDEX_TYPE 列舉。
dwTimestamp
[in] 儲存在 PE 檔案之 COFF 檔案標頭的日期時間戳記。
dwSizeOfImage
[in] 儲存在 PE 檔案之 COFF 選擇性檔案標頭的 SizeOfImage
欄位。
ppResolvedModulePath
[out] 這是模組 dll 的 null 終止路徑。 在 Windows 上應透過 CoTaskMemAlloc 配置。 在 Unix 上應透過 malloc 配置。 若失敗了,則不會有任何改變。 請參閱下方的安全性注意事項!
傳回值
此方法會傳回下列特定的 HRESULT,以及表示方法失敗的 HRESULT 錯誤。
HRESULT | 描述 |
---|---|
S_OK |
已成功完成命令。 |
備註
ProvideWindowsLibrary
可讓偵錯工具提供偵錯特定 CLR 檔案所需的模組,例如 mscordbi.dll 與 mscordacwks.dll。
偵錯工具可利用任何可用方法來尋找或採購偵錯模組。
重要
這項功能可讓 API 呼叫端提供包含可執行檔與可能為惡意程式碼的模組。 作為安全預防措施,呼叫端不得使用 ProvideWindowsLibrary
來散發其不願意自行執行的任何程式碼。
如果在已發行的程式庫中發現嚴重的安全性問題,例如 mscordbi.dll 或 mscordacwks.dll,則可修補填充碼,以識別檔案的不良版本。 然後,填充碼可對檔案的修補版本發出要求,並在不良版本因回應任何要求而提供時,拒絕不良版本。 只有在使用者已修補為新版填充碼時,才會發生此情況。 未修補的版本仍然易受攻擊。
需求
平台:請參閱 .NET 支援的作業系統。
標題:dbgshim.h
程式庫:dbgshim.dll、libdbgshim.so、libdbgshim.dylib
.NET 版本: 自 .NET Core 2.1 起提供