ICorProfilerInfo::GetModuleInfo メソッド
モジュール ID を指定して、モジュールのファイル名とモジュールの親アセンブリの ID を取得します。
構文
HRESULT GetModuleInfo(
[in] ModuleID moduleId,
[out] LPCBYTE *ppBaseLoadAddress,
[in] ULONG cchName,
[out] ULONG *pcchName,
[out, size_is(cchName), length_is(*pcchName)]
WCHAR szName[] ,
[out] AssemblyID *pAssemblyId);
パラメーター
moduleId
[in] 情報が取得されるモジュールの ID。
ppBaseLoadAddress
[out] モジュールが読み込まれるベース アドレス。
cchName
[in] szName
戻りバッファーの長さ (文字単位)。
pcchName
[out] 返されるモジュールのファイル名の文字列長の合計へのポインター。
szName
[out] 呼び出し元が提供したワイド文字バッファー。 メソッドから制御が戻るとき、このバッファーにモジュールのファイル名が格納されます。
pAssemblyId
[out] モジュールの親アセンブリ ID へのポインター。
解説
動的モジュールの場合、szName
パラメーターは空の文字列、ベース アドレスは 0 (ゼロ) になります。
モジュールの ID が見つかるとすぐに、GetModuleInfo
メソッドが呼び出される可能性がありますが、プロファイラーが ICorProfilerCallback::ModuleAttachedToAssembly コールバックを受け取るまで親アセンブリの ID は使用できません。
GetModuleInfo
から制御が戻ったら、szName
バッファーのサイズが十分で、モジュールのファイル名全体を格納できたかどうかを確認する必要があります。 これを行うには、pcchName
が指している値を cchName
パラメーターの値と比較します。 pcchName
が指している値が cchName
の値より大きい場合は、szName
バッファーの割り当てを増やし、cchName
を新しい大きいサイズに更新して、GetModuleInfo
を再度呼び出します。
別の方法として、最初に GetModuleInfo
を長さゼロの szName
バッファーで呼び出して、適切なバッファーのサイズを取得します。 その後、バッファーのサイズを pcchName
で返された値に設定し、GetModuleInfo
を再度呼び出します。
必要条件
:「システム要件」を参照してください。
ヘッダー : CorProf.idl、CorProf.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 2.0 以降で使用可能
関連項目
.NET