ICorProfilerInfo3::GetModuleInfo2 (Método)
Especificado un identificador de módulo, devuelve el nombre de archivo del módulo, el identificador del ensamblado primario del módulo y una máscara de bits que describe las propiedades del módulo.
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);
Parámetros
moduleId
[in] Identificador del módulo para el que se va a recuperar información.ppBaseLoadAddress
[out] Dirección base en la que se carga el módulo.cchName
[in] Longitud, en caracteres, del búfer de retorno de szName.pcchName
[out] Puntero a la longitud total en caracteres del nombre de archivo del módulo que se devuelve.szName
[out] Búfer de carácter ancho proporcionado por el llamador. Cuando el método devuelve un valor, este búfer contiene el nombre de archivo del módulo.pAssemblyId
[out] Puntero al identificador del ensamblado primario del módulo.pdwModuleFlags
[out] Una máscara de bits de valores de la enumeración COR_PRF_MODULE_FLAGS que especifican las propiedades del módulo.
Comentarios
Para los módulos dinámicos, el parámetro szName es el nombre de los metadatos del módulo, y la dirección base es 0 (cero). El nombre de los metadatos es el valor de la columna Nombre de la tabla Módulo dentro de los metadatos. Esto también se expone como la propiedad Module.ScopeName al código administrado, y como el parámetro szName del método IMetaDataImport::GetScopeProps al código de cliente de metadatos no administrado.
Aunque se puede llamar al método GetModuleInfo2 en cuanto exista el identificador del módulo, el identificador del ensamblado primario no estará disponible hasta que el generador de perfiles reciba la devolución de llamada de ICorProfilerCallback::ModuleAttachedToAssembly.
Una vez que vuelva GetModuleInfo2, debe comprobar que el búfer szName era lo bastante grande para contener el nombre de archivo completo del módulo. Para ello, compare el valor al que señala pcchName con el valor del parámetro cchName. Si pcchName señala a un valor mayor que cchName, asigne un búfer de szName mayor, actualice cchName con el nuevo tamaño y llame de nuevo a GetModuleInfo2.
Otra opción es llamar primero a GetModuleInfo2 con un búfer de szName de longitud cero para obtener el tamaño de búfer correcto. Después, puede establecer el tamaño del búfer en el valor devuelto en pcchName y llamar de nuevo a GetModuleInfo2.
Para obtener más información sobre estos dos enfoques, vea la sección "Búferes asignados por el llamador" de Convenciones de los métodos de la API de generación de perfiles.
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versiones de .NET Framework: 4
Vea también
Referencia
Otros recursos
Interfaces para generación de perfiles
Generación de perfiles (Referencia de la API no administrada)