次の方法で共有


ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary メソッド

共通言語ランタイムのバージョン固有のデバッグ ライブラリをオンデマンドで検索し、読み込むことを可能にする、ライブラリ プロバイダーのコールバック インターフェイスを取得します。

構文

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 は、デバッガーが、mscordbi.dll や mscordacwks.dll などの特定の CLR ファイルをデバッグするために必要なモジュールを提供できるようにします。

デバッガーは、使用可能な任意の方法を使用して、デバッグ モジュールを見つけたり調達したりすることができます。

重要

この機能により、API 呼び出し元は、実行可能ファイルや悪意のある可能性のあるコードが含まれているモジュールを提供できます。 セキュリティ上の予防措置として、呼び出し元は ProvideWindowsLibrary を使用して、それ自体で実行したくないコードを配布することはできません。

mscordbi.dll や mscordacwks.dll など、既にリリースされているライブラリで深刻なセキュリティの問題が検出された場合、shim には、不適切なバージョンのファイルを認識するように修正プログラムを適用できます。 その後、shim は、修正プログラムが適用されたバージョンのファイルに対する要求を発行し、不適切なバージョンが提供されている場合は、要求に応じて拒否します。 これは、ユーザーが新しいバージョンの shim に修正プログラムを適用済みの場合にのみ行われます。 修正プログラムが適用されていないバージョンは脆弱なままになります。

必要条件

プラットフォーム:.NET supported operating systems をご参照ください。

ヘッダー: dbgshim.h

ライブラリ: dbgshim.dll、libdbgshim.so、libdbgshim.dylib

.NET のバージョン: .NET Core 2.1 以降で使用可能