ICLRDebuggingLibraryProvider3::ProvideUnixLibrary 方法

可讓偵錯工具提供版本特有 Common Language Runtime (CLR) 偵錯程式庫在 macOS 和 Linux 上的路徑。

語法

HRESULT ProvideUnixLibrary (
     [in] const WCHAR* pwszFileName,
     [in] const WCHAR* pwszRuntimeModule,
     [in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
     [in] BYTE* pbBuildId,
     [in] int iBuildIdSize,
     [out] LPWSTR* ppResolvedModulePath);

參數

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

pwszRuntimeModule
[輸入] 執行階段或單一檔案模組路徑。

indexType
[輸入] 所提供索引資訊 (pBuildId) 的類型。 請參閱 LIBRARY_PROVIDER_INDEX_TYPE 列舉。

pbBuildId
[in] Linux 或 macOS 模組組建識別碼。如果擷取組建識別碼時發生錯誤,可能是 null。

iBuildIdSize
[輸入] pbBuildId 陣列中的位元組數目。 如果擷取組建識別碼時發生錯誤,可能是 0。

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

傳回值

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

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

備註

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

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

重要

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

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

需求

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

標題:dbgshim.h

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

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