Método ICorProfilerCallback::ObjectReferences
Notifica o criador de perfil sobre objetos na memória que estão sendo referenciados pelo objeto especificado.
Sintaxe
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
Parâmetros
objectId
[in] A ID do objeto que está referenciando objetos.
classId
[in] A ID da classe da qual o objeto especificado é uma instância.
cObjectRefs
[in] O número de objetos referenciados pelo objeto especificado (ou seja, o número de elementos na matriz objectRefIds
).
objectRefIds
[in] Uma matriz de IDs de objetos que estão sendo referenciados por objectId
.
Comentários
O método ObjectReferences
é chamado para cada objeto restante no heap após a conclusão de uma coleta de lixo. Se o criador de perfil retornar um erro desse retorno de chamada, os serviços de criação de perfil interromperão a invocação desse retorno de chamada até a próxima coleta de lixo.
O retorno de chamada ObjectReferences
pode ser usado em conjunto com o retorno de chamada ICorProfilerCallback::RootReferences para criar um grafo de referência de objeto completo para o runtime. O CLR (Common Language Runtime) garante que cada referência de objeto seja relatada apenas uma vez pelo método ObjectReferences
.
As IDs de objeto retornadas por ObjectReferences
não são válidas durante o retorno de chamada em si, pois a coleta de lixo pode estar no meio da movimentação de objetos. Portanto, os criadores de perfis não devem tentar inspecionar objetos durante uma chamada ObjectReferences
. Quando ICorProfilerCallback2::GarbageCollectionFinished é chamado, a coleta de lixo é concluída e a inspeção pode ser feita com segurança.
Um nulo ClassId
indica que objectId
tem um tipo que está sendo descarregado.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: disponíveis desde 2.0