Метод ICorProfilerInfo3::GetModuleInfo2
Возвращает имя файла модуля, идентификатор родительской сборки модуля и битовую маску, описывающую свойства модуля, по идентификатору модуля.
Синтаксис
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] Идентификатор модуля, для которого будут извлекаться сведения.
ppBaseLoadAddress
[out] Базовый адрес, по которому модуль был загружен.
cchName
[in] Длина буфера возврата szName
в символах.
pcchName
[out] Указатель на общую длину возвращаемого имени файла модуля в символах.
szName
[out] Буфер расширенных символов, предоставленный вызывающим объектом. При возврате метода этот буфер содержит имя файла модуля.
pAssemblyId
[out] Указатель на идентификатор родительской сборки модуля.
pdwModuleFlags
[out] Битовая маска значений из перечисления COR_PRF_MODULE_FLAGS , задающая свойства модуля.
Комментарии
Для динамических модулей параметр szName
является именем метаданных модуля, а базовый адрес равен 0 (нулю). Имя метаданных — это значение в столбце Name таблицы Module в метаданных. Он также предоставляется как Module.ScopeName свойство управляемому коду и в качестве szName
параметра метода IMetaDataImport::GetScopeProps для неуправляемого клиентского кода метаданных.
GetModuleInfo2
Хотя метод может вызываться сразу после появления идентификатора модуля, идентификатор родительской сборки будет недоступен, пока профилировщик не получит обратный вызов ICorProfilerCallback::ModuleAttachedToAssembly.
После возврата метода GetModuleInfo2
необходимо убедиться, что буфер szName
был достаточно велик, чтобы вместить в себя полное имя файла модуля. Для этого сравните значение, на которое указывает параметр pcchName
, со значением параметра cchName
. Если параметр pcchName
указывает на значение, превышающее значение cchName
, выделите буфер szName
большего размера, обновите параметр cchName
, задав новый, больший размер, и вызовите метод GetModuleInfo2
снова.
Кроме того, сначала можно вызвать метод GetModuleInfo2
с буфером szName
нулевой длины для получения правильного размера буфера. Затем можно задать размер буфера равным значению, возвращенному в параметре pcchName
, и вызвать метод GetModuleInfo2
снова.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с 4