Método ICorProfilerCallback::ObjectReferences
Notifica o gerador de perfis sobre objetos na memória que estão a ser 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] O ID do objeto que está a referenciar objetos.
classId
[in] O 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 objectRefIds
matriz).
objectRefIds
[in] Uma matriz de IDs de objetos que estão a ser referenciados por objectId
.
Observações
O ObjectReferences
método é chamado para cada objeto que permanece na área dinâmica para dados após a conclusão de uma libertação da memória. Se o gerador de perfis devolver um erro desta chamada de retorno, os serviços de criação de perfis deixarão de invocar esta chamada de retorno até à próxima libertação da memória.
A ObjectReferences
chamada de retorno pode ser utilizada em conjunto com a chamada de retorno ICorProfilerCallback::RootReferences para criar um gráfico de referência de objeto completo para o runtime. O runtime de linguagem comum (CLR) garante que cada referência de objeto é reportada apenas uma vez pelo ObjectReferences
método .
Os IDs de objeto devolvidos por ObjectReferences
não são válidos durante a chamada de retorno propriamente dita, porque a libertação da memória pode estar no meio de objetos em movimento. Por conseguinte, os geradores de perfis não podem tentar inspecionar objetos durante uma ObjectReferences
chamada. Quando iCorProfilerCallback2::GarbageCollectionFinished é chamado, a libertação da memória é concluída e a inspeção pode ser feita em segurança.
Um valor nulo ClassId
indica que objectId
tem um tipo que está a descarregar.
Requisitos
Plataformas: Veja Requisitos de Sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
.NET Framework Versões: Disponível desde 2.0