次の方法で共有


ICorProfilerInfo::GetModuleInfo メソッド

更新 : 2007 年 11 月

モジュール 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
    [入力] 情報が取得されるモジュールの ID。

  • ppBaseLoadAddress
    [出力] モジュールが読み込まれるベース アドレス。

  • cchName
    [入力] szName 戻りバッファの長さ (文字単位)。

  • pcchName
    [出力] 返されるモジュールのファイル名の文字列長の合計へのポインタ。

  • szName
    [出力] 呼び出し元が提供したワイド文字バッファ。関数が戻るとき、この中にモジュールのファイル名が格納されます。

  • pAssemblyId
    [出力] モジュールの親アセンブリ ID へのポインタ。

解説

動的モジュールの場合、szName パラメータは空の文字列、ベース アドレスは 0 (ゼロ) になります。

モジュールの ID が見つかるとすぐに、GetModuleInfo メソッドが呼び出される可能性がありますが、プロファイラが ICorProfilerCallback::ModuleAttachedToAssembly コールバックを受け取るまで親アセンブリの ID は使用できません。

GetModuleInfo から制御が戻ったら、szName バッファのサイズが十分で、モジュールのファイル名全体を格納できたかどうかを確認する必要があります。これを行うには、pcchName が指している値を cchName パラメータの値と比較します。pcchName が指している値が cchName の値より大きい場合は、szName バッファの割り当てを増やし、cchName を大きくなった新しいサイズに更新した後、GetModuleInfo を再度呼び出します。

別の方法として、最初に GetModuleInfo を長さゼロの szName バッファで呼び出して、適切なバッファのサイズを取得します。その後、バッファのサイズを pcchName で返された値に設定し、GetModuleInfo を再度呼び出します。

この 2 つのアプローチの詳細については、「呼び出し元が割り当てたバッファ」を参照してください。

必要条件

プラットフォーム : 「.NET Framework システム要件」を参照

ヘッダー : CorProf.idl

ライブラリ : CorGuids.lib

.NET Framework のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

参照

参照

ICorProfilerInfo

その他の技術情報

プロファイリングのインターフェイス

プロファイル (アンマネージ API リファレンス)