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