Método ICorProfilerCallback2::RootReferences2
Notifica o criador de perfil sobre referências raiz após um lixo coleção ocorreu. Esse método é uma extensão do ICorProfilerCallback::RootReferences método.
HRESULT RootReferences2(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID rootRefIds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_KIND rootKinds[],
[in, size_is(cRootRefs)] COR_PRF_GC_ROOT_FLAGS rootFlags[],
[in, size_is(cRootRefs)] UINT_PTR rootIds[]);
Parâmetros
cRootRefs
[in] O número de elementos no rootRefIds, rootKinds, rootFlags, e rootIds matrizes.rootRefIds
[in] Uma matriz de identificadores de objetos, cada um deles referencia um objeto estático ou um objeto na pilha. Elementos no rootKinds matriz fornecem informações para classificar os elementos correspondentes a rootRefIds matriz.rootKinds
[in] Uma matriz de COR_PRF_GC_ROOT_KIND valores que indicam o tipo do lixo coleção raiz.rootFlags
[in] Uma matriz de COR_PRF_GC_ROOT_FLAGS valores que descrevem as propriedades de um lixo coleção raiz.rootIds
[in] Uma matriz de UINT_PTR valores desse ponto em um número inteiro que contém informações adicionais sobre a raiz de coleção lixo, dependendo do valor do rootKinds parâmetro.Se o tipo de raiz é uma pilha, a raiz ID é para a função que contém a variável. Se essa ID raiz for 0, a função é uma função sem nome é interna ao CLR. Se o tipo de raiz é um identificador, o identificador raiz é o identificador de coleta de lixo. Para outros tipos de raiz, a ID é um valor opaco e deve ser ignorada.
Comentários
The rootRefIds, rootKinds, rootFlags, e rootIds matrizes são matrizes paralelas. Ou seja, rootRefIds[i], rootKinds[i], rootFlags[i], e rootIds[i] todos se referem a mesma raiz.
Ambos os RootReferences e RootReferences2 são chamados para notificar o criador de perfil. Geradores de perfis normalmente implementará um método ou a Outros, mas não ambos, porque as informações passadas em RootReferences2 é um superconjunto do que passado RootReferences.
É possível que as entradas no rootRefIds a ser zero, o que significa que a referência raiz correspondente é nula e não faz referência a um objeto na heap gerenciada.
O objeto retornados por IDsRootReferences2 inválido são válido durante o retorno de chamada, porque a coleta de lixo pode estar no meio da movimentação de objetos de endereços antigos para novos endereços. Portanto, geradores de perfis não devem tentar inspecionar objetos durante um RootReferences2 telefonar. Quando ICorProfilerCallback2::GarbageCollectionFinished é chamado, todos os objetos foram movidos para seus novos locais e podem ser olhados com segurança.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0