次の方法で共有


ICorProfilerInfo3::GetModuleInfo2 Method

モジュール ID を指定すると、モジュールのファイル名、モジュールの親アセンブリの ID、およびモジュールのプロパティを記述するビットマスクが返されます。

Syntax

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);

Parameters

moduleId [in]情報を取得するモジュールの ID。

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

cchName [in] szName 戻りバッファーの長さ (文字数)。

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

szName [out]呼び出し元が提供するワイド文字バッファー。 メソッドから制御が戻るときに、このバッファーにはモジュールのファイル名が含まれます。

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

pdwModuleFlags [out]モジュールのプロパティを指定する COR_PRF_MODULE_FLAGS 列挙体の値のビットマスク。

Remarks

動的モジュールの場合、 szName パラメーターはモジュールのメタデータ名で、ベース アドレスは 0 (ゼロ) です。 メタデータ名は、メタデータ内の Module テーブルの [名前] 列の値です。 これは、マネージド コードに対する Module.ScopeName プロパティとして、およびアンマネージ メタデータ クライアント コードへの IMetaDataImport::GetScopeProps メソッドのszName パラメーターとしても公開されます。

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

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

または、最初に長さ 0 のGetModuleInfo2 バッファーでszNameを呼び出して、正しいバッファー サイズを取得することもできます。 その後、バッファー サイズを pcchName で返される値に設定し、 GetModuleInfo2 を再度呼び出すことができます。

Requirements

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

ヘッダ: CorProf.idl、CorProf.h

Library: CorGuids.lib

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

See also