ICorProfilerCallback6::GetAssemblyReferences (Método)ICorProfilerCallback6::GetAssemblyReferences Method

[Compatible con .NET Framework 4.5.2 y versiones posteriores][Supported in the .NET Framework 4.5.2 and later versions]

Notifica al generador de perfiles que un ensamblado está en una etapa de carga muy temprana, cuando Common Language Runtime realiza un rastreo de cierre de referencias de ensamblado.Notifies the profiler that an assembly is in a very early loading stage, when the common language runtime performs an assembly reference closure walk.

SintaxisSyntax

HRESULT GetAssemblyReferences(        [in, string] const WCHAR* wszAssemblyPath,  
        [in] ICorProfilerAssemblyReferenceProvider* pAsmRefProvider  
);  

ParámetrosParameters

wszAssemblyPath
[in] Ruta de acceso y nombre del ensamblado cuyos metadatos se modificarán.[in] The path and name of the assembly whose metadata will be modified.

pAsmRefProvider
de Puntero a la dirección de una interfaz ICorProfilerAssemblyReferenceProvider que especifica las referencias de ensamblado que se van a agregar.[in] A pointer to the address of an ICorProfilerAssemblyReferenceProvider interface that specifies the assembly references to add.

Valor devueltoReturn Value

Los valores devueltos de esta devolución de llamada se pasan por alto.Return values from this callback are ignored.

ComentariosRemarks

Esta devolución de llamada se controla estableciendo la marca de máscara de eventos COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES al llamar al método ICorProfilerCallback5:: SetEventMask2 .This callback is controlled by setting the COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES event mask flag when calling the ICorProfilerCallback5::SetEventMask2 method. Si el generador de perfiles se registra para el método de devolución de llamada ICorProfilerCallback6:: GetAssemblyReferences , el tiempo de ejecución pasa la ruta de acceso y el nombre del ensamblado que se va a cargar, junto con un puntero a un objeto de interfaz ICorProfilerAssemblyReferenceProvider a ese método.If the profiler registers for the ICorProfilerCallback6::GetAssemblyReferences callback method, the runtime passes the path and name of the assembly to be loaded, along with a pointer to an ICorProfilerAssemblyReferenceProvider interface object to that method. Después, el generador de perfiles puede llamar al método ICorProfilerAssemblyReferenceProvider:: AddAssemblyReference con un objeto COR_PRF_ASSEMBLY_REFERENCE_INFO por cada ensamblado de destino al que se va a hacer referencia desde el ensamblado especificado en la devolución de llamada de GetAssemblyReferences.The profiler can then call the ICorProfilerAssemblyReferenceProvider::AddAssemblyReference method with a COR_PRF_ASSEMBLY_REFERENCE_INFO object for each target assembly it plans to reference from the assembly specified in the GetAssemblyReferences callback.

Use la devolución de llamada GetAssemblyReferences solo si el generador de perfiles tiene que modificar los metadatos de un ensamblado para agregar referencias de ensamblado.Use the GetAssemblyReferences callback only if the profiler has to modify an assembly's metadata to add assembly references. (Pero tenga en cuenta que la modificación real de los metadatos de un ensamblado se realiza en el método de devolución de llamada ICorProfilerCallback:: ModuleLoadFinished). El generador de perfiles debe implementar el método de devolución de llamada GetAssemblyReferences para informar al Common Language Runtime (CLR) que se agregarán referencias de ensamblado cuando se haya cargado el módulo.(But note that the actual modification of an assembly's metadata is done in the ICorProfilerCallback::ModuleLoadFinishedcallback method.) The profiler should implement the GetAssemblyReferences callback method to inform the common language runtime (CLR) that assembly references will be added when the module has been loaded. Esto garantiza que las decisiones que tome CLR acerca del uso compartido de ensamblados en esta fase temprana seguirán siendo válidas aunque el generador de perfiles tenga planeado modificar las referencias de ensamblado de metadatos más adelante.This helps ensure that assembly sharing decisions made by the CLR during this early stage remain valid although the profiler plans to modify the metadata assembly references later. De esta manera se pueden evitar algunas instancias en las que las modificaciones de los metadatos del generador de perfiles provocan un error SECURITY_E_INCOMPATIBLE_SHARE.This can avoid some instances in which profiler metadata modifications cause an SECURITY_E_INCOMPATIBLE_SHARE error.

El generador de perfiles usa el objeto ICorProfilerAssemblyReferenceProvider proporcionado por este método para agregar referencias de ensamblado al rastreador de cierre de referencia de ensamblado de CLR.The profiler uses the ICorProfilerAssemblyReferenceProvider object provided by this method to add assembly references to the CLR assembly reference closure walker. El objeto ICorProfilerAssemblyReferenceProvider solo debe usarse desde esta devolución de llamada.The ICorProfilerAssemblyReferenceProvider object should be used only from within this callback. Las llamadas al método ICorProfilerAssemblyReferenceProvider:: AddAssemblyReference desde esta devolución de llamada no dan como resultado metadatos modificados, sino solo en un recorrido de cierre de referencia de ensamblado modificado.Calls to the ICorProfilerAssemblyReferenceProvider::AddAssemblyReference method from this callback don't result in modified metadata, but only in a modified assembly reference closure walk. El generador de perfiles todavía tendrá que usar un objeto IMetaDataAssemblyEmit para agregar explícitamente las referencias de ensamblado desde dentro de la devolución de llamada ICorProfilerCallback:: ModuleLoadFinished para el ensamblado de referencia, aunque implemente la devolución de llamada de GetAssemblyReferences.The profiler will still have to use an IMetaDataAssemblyEmit object to explicitly add assembly references from within the ICorProfilerCallback::ModuleLoadFinished callback for the referencing assembly, even if it implements the GetAssemblyReferences callback.

El generador de perfiles debe estar preparado para recibir llamadas duplicadas a esta devolución de llamada para el mismo ensamblado y debe responder de forma idéntica para cada una de estas llamadas duplicadas (realizando el mismo conjunto de llamadas a ICorProfilerAssemblyReferenceProvider:: AddAssemblyReference ).The profiler should be prepared to receive duplicate calls to this callback for the same assembly, and should respond identically for each such duplicate call (by making the same set of ICorProfilerAssemblyReferenceProvider::AddAssemblyReference calls).

RequisitosRequirements

Plataformas: Vea Requisitos de sistema.Platforms: See System Requirements.

Encabezado: CorProf.idl, CorProf.hHeader: CorProf.idl, CorProf.h

Biblioteca: CorGuids.libLibrary: CorGuids.lib

Versiones de .NET Framework: Disponible desde la versión 4.5.2Available since 4.5.2.NET Framework Versions: Disponible desde la versión 4.5.2Available since 4.5.2

Vea tambiénSee also