Метод 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

См. также раздел