Бөлісу құралы:


Метод ICorProfilerInfo3::GetModuleInfo2

Если задан идентификатор модуля, возвращает имя файла модуля, идентификатор родительской сборки модуля и битовую маску, описывающую свойства модуля.

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] Идентификатор модуля, для которого будут получены сведения.

ppBaseLoadAddress [out] Базовый адрес, по которому загружается модуль.

cchName [in] Длина в символах возвращаемого буфера szName .

pcchName [out] Указатель на общую длину символов возвращаемого имени файла модуля.

szName [out] Расширенный буфер символов, предоставляемый вызывающим объектом. При возврате метода этот буфер содержит имя файла модуля.

pAssemblyId [out] Указатель на идентификатор родительской сборки модуля.

pdwModuleFlags [out] Битовая маска значений из перечисления COR_PRF_MODULE_FLAGS , указывающая свойства модуля.

Remarks

Для динамических модулей параметр — это имя метаданных szName модуля, а базовый адрес — 0 (ноль). Имя метаданных — это значение в столбце Name из таблицы module внутри метаданных. Это также предоставляется в качестве свойства управляемого кода, а также в качестве Module.ScopeNameszName параметра метода IMetaDataImport::GetScopeProps для неуправляемого клиентского кода метаданных.

GetModuleInfo2 Хотя метод может вызываться как только идентификатор модуля, идентификатор родительской сборки не будет доступен, пока профилировщик не получит обратный вызов ICorProfilerCallback::ModuleAttachedToAssembly.

При GetModuleInfo2 возврате необходимо убедиться, что szName буфер был достаточно большим, чтобы содержать полное имя файла модуля. Для этого сравните значение, указывающее pcchName на значение cchName параметра. Если pcchName указывает на значение, которое больше cchName, выделите больший szName буфер, обновите cchName его новым, большим размером и снова вызовите GetModuleInfo2 .

Кроме того, можно сначала вызвать GetModuleInfo2 буфер нулевой длины szName , чтобы получить правильный размер буфера. Затем можно задать размер буфера значением, возвращенным и снова вызываемым pcchNameGetModuleInfo2 .

Requirements

Платформы: см. раздел Требования к системе.

Заголовок: CorProf.idl, CorProf.h

Библиотека: CorGuids.lib

Версии .NET Framework: Доступно с 4

См. также