デバッガーが macOS および Linux 上のバージョン固有の共通言語ランタイム (CLR) デバッグ ライブラリへのパスを提供できるようにします。
構文
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
[in]ランタイムまたは単一ファイルのモジュール パス。
indexType
[in]指定されたインデックス情報 (pBuildId) の種類。 列挙型 LIBRARY_PROVIDER_INDEX_TYPE 参照してください。
pbBuildId
[in]Linux または macOS モジュールのビルド ID。ビルド ID の取得に問題が発生した場合は、null を指定できます。
iBuildIdSize
[in]pbBuildId 配列内のバイト数。 ビルド ID の取得に問題が発生した場合は、0 にすることができます。
ppResolvedModulePath
[out]これは、モジュール dll への null 終端パスです。 Unix では、CoTaskMemAlloc を使用して割り当てる必要があります。 Unix では、malloc を使用して割り当てる必要があります。 失敗すると、手つかずの状態になります。 以下のセキュリティに関する注意事項を参照してください。
戻り値
このメソッドは、次の特定の HRESULT と、メソッドエラーを示す HRESULT エラーを返します。
| HRESULT | 説明 |
|---|---|
S_OK |
メソッドは正常に完了しました。 |
注釈
ProvideUnixLibrary を使用すると、デバッガーは、mscordbi.dll や mscordacwks.dllなどの特定の CLR ファイルのデバッグに必要なモジュールを提供できます。
デバッガーは、デバッグ モジュールを検索または調達するために使用可能な任意の手段を使用できます。
Von Bedeutung
この機能を使用すると、API 呼び出し元は実行可能なコードや悪意のあるコードを含むモジュールを提供できます。 セキュリティ上の予防措置として、呼び出し元は ProvideUnixLibrary を使用して、それ自体を実行する必要のないコードを配布しないようにする必要があります。
mscordbi.dll や mscordacwks.dllなど、既にリリースされているライブラリで重大なセキュリティの問題が検出された場合は、shim に修正プログラムを適用して、ファイルの不適切なバージョンを認識できます。 shim は、修正プログラムが適用されたバージョンのファイルに対する要求を発行し、要求に応答して提供された場合は無効なバージョンを拒否できます。 これは、ユーザーが新しいバージョンの shim にパッチを適用した場合にのみ発生します。 修正プログラムが適用されていないバージョンは引き続き脆弱です。
要求事項
プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。
ヘッダー: dbgshim.h
ライブラリ: dbgshim.dll, libdbgshim.so, libdbgshim.dylib
.NET バージョン: .NET Core 2.1 以降で使用可能
.NET