Metodo ICorProfilerInfo9::GetCodeInfo4
Dato l'indirizzo iniziale del codice nativo, restituisce i blocchi di memoria virtuale in cui è archiviato il codice.
Sintassi
HRESULT GetCodeInfo4( [in] UINT_PTR pNativeCodeStartAddress,
[in] ULONG32 cCodeInfos,
[out] ULONG32* pcCodeInfos,
[out] COR_PRF_CODE_INFO codeInfos[]);
Parametri
pNativeCodeStartAddress
[in] Puntatore all'inizio di una funzione nativa.
cCodeInfos
[in] Dimensione della matrice codeInfos
.
pcCodeInfos
[out] Puntatore al numero complessivo di strutture COR_PRF_CODE_INFO disponibili.
codeInfos
[out] Buffer fornito dal chiamante. Una volta completato, il metodo contiene una matrice di strutture COR_PRF_CODE_INFO
, ognuna delle quali descrive un blocco di codice nativo.
Osservazioni:
Il metodo GetCodeInfo4
è simile a GetCodeInfo3, ad eccezione del fatto che può cercare informazioni sul codice per versioni native diverse di un metodo.
Nota
GetCodeInfo4
può attivare un'operazione di Garbage Collection.
Gli ambiti vengono ordinati in sequenza crescente in base all'offset CIL (Common Intermediate Language).
Dopo la restituzione di GetCodeInfo4
, è necessario verificare che il buffer codeInfos
sia abbastanza grande per contenere tutte le strutture COR_PRF_CODE_INFO. A tale scopo, confrontare il valore di cCodeInfos
con il valore del parametro cchName
. Se il valore cCodeInfos
, diviso per la dimensione di una struttura COR_PRF_CODE_INFO, è inferiore a pcCodeInfos
, allocare un buffer codeInfos
più grande, aggiornare cCodeInfos
con la nuova dimensione maggiore e chiamare nuovamente GetCodeInfo4
.
In alternativa, è possibile chiamare innanzitutto GetCodeInfo4
con un buffer codeInfos
di lunghezza zero per ottenere le dimensioni del buffer corrette. È quindi possibile impostare le dimensioni del buffer codeInfos
sul valore restituito in pcCodeInfos
moltiplicato per la dimensione di una struttura COR_PRF_CODE_INFO e chiamare di nuovo GetCodeInfo4
.
Requisiti
Piattaforme: vedere Sistemi operativi supportati da .NET.
Intestazione: CorProf.idl, CorProf.h
Libreria: CorGuids.lib
Versioni .NET: disponibili a partire da .NET Core 2.1