ICLRDebuggingLibraryProvider::ProvideLibrary メソッド

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

構文

HRESULT ProvideLibrary(
     [in] const WCHAR* pwszFileName,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] HMODULE* hModule);

パラメーター

pwszFilename
[in] 要求するモジュールの名前。

dwTimestamp
[in] PE ファイルの COFF ファイル ヘッダーに格納されている日付/時刻スタンプ。

dwSizeOfImage
[in] PE ファイルの COFF の省略可能なファイル ヘッダーに格納されている SizeOfImage フィールド。

hModule
[out] 要求されたモジュールへのハンドル。

戻り値

このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。

HRESULT 説明
S_OK メソッドは正常に完了しました。

例外

解説

ProvideLibrary は、デバッガーが、mscordbi.dll や mscordacwks.dll などの特定の CLR ファイルをデバッグするために必要なモジュールを提供できるようにします。 モジュール ハンドルは、ICLRDebugging::CanUnloadNow メソッドの呼び出しによって解放される可能性があることが示されるまで、有効なままにしておく必要があります。その時点で、ハンドルを解放するのは呼び出し元の責任です。

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

重要

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

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

必要条件

:システム要件」を参照してください。

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

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

関連項目