共用方式為


ICLRDebuggingLibraryProvider3::P rovideWindowsLibrary 方法

取得連結庫提供者回呼介面,可讓 Common Language Runtime (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] SizeOfImage 儲存在 PE 檔案 COFF 選用檔案標頭中的欄位。

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 起提供