Método ICorProfilerInfo9::GetCodeInfo4
Dado o endereço inicial do código nativo, retorna os blocos de memória virtual que armazenam esse código.
Sintaxe
HRESULT GetCodeInfo4( [in] UINT_PTR pNativeCodeStartAddress,
[in] ULONG32 cCodeInfos,
[out] ULONG32* pcCodeInfos,
[out] COR_PRF_CODE_INFO codeInfos[]);
Parâmetros
pNativeCodeStartAddress
[in] Um ponteiro para o início de uma função nativa.
cCodeInfos
[in] O tamanho da matriz codeInfos
.
pcCodeInfos
[out] Um ponteiro para o número total de estruturas de COR_PRF_CODE_INFO disponíveis.
codeInfos
[out] Um buffer fornecido pelo chamador. Depois que o método é retornado, ele contém uma matriz de estruturas COR_PRF_CODE_INFO
cada uma delas descreve um bloco de código nativo.
Comentários
O método GetCodeInfo4
é semelhante ao GetCodeInfo3, exceto que ele pode pesquisar informações de código para versões nativas diferentes de um método.
Observação
GetCodeInfo4
pode disparar uma coleta de lixo.
As extensões são classificadas para aumentar o deslocamento da CIL (Common Intermediate Language).
Após o retorno de GetCodeInfo4
, você deve verificar se o buffer codeInfos
era grande o suficiente para conter todas as estruturas COR_PRF_CODE_INFO. Para fazer isso, compare o valor de cCodeInfos
com o valor do parâmetro cchName
. Se cCodeInfos
dividido pelo tamanho de uma estrutura COR_PRF_CODE_INFO for menor do que pcCodeInfos
, aloque um buffer codeInfos
maior, atualize cCodeInfos
com o novo tamanho maior e chame GetCodeInfo4
novamente.
Como alternativa, primeiro você pode chamar GetCodeInfo4
com um buffer codeInfos
de comprimento zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer codeInfos
para o valor retornado em pcCodeInfos
, multiplicado pelo tamanho de uma estrutura COR_PRF_CODE_INFO e chamar GetCodeInfo4
novamente.
Requisitos
Plataformas: consulte Sistemas operacionais compatíveis com .NET.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET: disponível desde o .NET Core 2.1