ICLRDebuggingLibraryProvider::ProvideLibrary メソッド
共通言語ランタイム (CLR: Common Language Runtime) のバージョン固有のデバッグ ライブラリをオンデマンドで検索および読み込むことができる、ライブラリ プロバイダーのコールバック インターフェイスを取得します。
HRESULT ProvideLibrary(
[in] const WCHAR* pwszFileName,
[in] DWORD dwTimestamp,
[in] DWORD dwSizeOfImage,
[out] HMODULE* hModule);
パラメーター
pwszFilename
[入力] 要求するモジュールの名前。dwTimestamp
[入力] PE ファイルの COFF ファイル ヘッダーに格納される日付タイム スタンプ。pLibraryProvider
[入力] PE ファイルの COFF 省略可能ファイル ヘッダーに格納される SizeOfImage フィールド。hModule
[出力] 要求されたモジュールへのハンドル。
戻り値
このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。
HRESULT |
説明 |
---|---|
S_OK |
メソッドは正常に終了しました。 |
解説
ProvideLibrary を使用すると、デバッガーが、mscordbi.dll や mscordacwks.dll などの特定の CLR ファイルのデバッグに必要なモジュールを提供できます。 モジュール ハンドルは、ICLRDebugging::CanUnloadNow メソッドの呼び出しによって、解放が可能であることが示されるまでは、有効のままである必要があります。この場合、呼び出し元がモジュール ハンドルを解放します。
デバッガーは、使用可能なあらゆる方法でデバッグ モジュールを検索または調達できます。
重要 |
---|
この機能により、API 呼び出し元は実行可能コードを含むモジュールを提供できます。この実行可能コードは、悪意のあるコードである可能性もあります。セキュリティ対策として、呼び出し元では、自身を実行しないコードを ProvideLibrary で配布しないようにしてください。 mscordbi.dll や mscordacwks.dll など、既にリリースされているライブラリで重大なセキュリティの懸案事項が見つかった場合は、ファイルの禁止バージョンを認識するように shim を修正できます。その後、shim は、ファイルの修正済みバージョンに対する要求を発行し、それらのバージョンが、要求に応じて提供された場合は、禁止バージョンを拒否できます。このような状況になるのは、ユーザーが shim の新しいバージョンを修正した場合のみです。修正されないバージョンは、脆弱なままになります。 |
必要条件
プラットフォーム: 「.NET Framework システム要件」を参照
ヘッダー: CorDebug.idl、CorDebug.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 4