Méthode ICorProfilerInfo9::GetCodeInfo4
Étant donné l’adresse de début du code natif, renvoie les blocs de mémoire virtuelle qui stockent ce code.
Syntaxe
HRESULT GetCodeInfo4( [in] UINT_PTR pNativeCodeStartAddress,
[in] ULONG32 cCodeInfos,
[out] ULONG32* pcCodeInfos,
[out] COR_PRF_CODE_INFO codeInfos[]);
Paramètres
pNativeCodeStartAddress
[in] Pointeur vers le début d’une fonction native.
cCodeInfos
[in] Taille du tableau codeInfos
.
pcCodeInfos
[out] Pointeur vers le nombre total de structures COR_PRF_CODE_INFO disponibles.
codeInfos
[out] Mémoire tampon fournie par l'appelant. Suite au retour de la méthode, celle-ci contient un tableau de structures COR_PRF_CODE_INFO
qui décrivent chacune un bloc de code natif.
Notes
La méthode GetCodeInfo4
est similaire à GetCodeInfo3, sauf qu’elle peut rechercher des informations de code pour différentes versions natives d’une méthode.
Notes
GetCodeInfo4
peut déclencher un nettoyage de la mémoire.
Les étendues sont triées par ordre croissant des offsets du langage CIL (Common Intermediate Language).
Après le retour de GetCodeInfo4
, vous devez vérifier que la mémoire tampon codeInfos
est suffisante pour contenir toutes les structures COR_PRF_CODE_INFO. Pour ce faire, comparez la valeur de cCodeInfos
à celle du paramètre cchName
. Si le résultat de la division de cCodeInfos
par la taille d’une structure COR_PRF_CODE_INFO est inférieur à pcCodeInfos
, allouez davantage de mémoire tampon codeInfos
, mettez à jour cCodeInfos
pour refléter la nouvelle taille et rappelez GetCodeInfo4
.
Vous pouvez également commencer par appeler GetCodeInfo4
avec un tampon codeInfos
de longueur nulle pour obtenir la taille correcte du tampon. Vous pouvez ensuite affecter à la taille de la mémoire tampon codeInfos
la valeur retournée dans pcCodeInfos
, multipliée par la taille d’une structure COR_PRF_CODE_INFO, puis rappeler GetCodeInfo4
.
Spécifications
Plateformes : Consultez Systèmes d’exploitation pris en charge par .NET.
En-tête : CorProf.idl, CorProf.h
Bibliothèque : CorGuids.lib
Versions de .NET : Disponible depuis .NET Core 2.1