ICorProfilerInfo9::GetCodeInfo4-metod
Med tanke på startadressen för den interna koden returnerar blocken för virtuellt minne som lagrar den här koden.
Syntax
HRESULT GetCodeInfo4( [in] UINT_PTR pNativeCodeStartAddress,
[in] ULONG32 cCodeInfos,
[out] ULONG32* pcCodeInfos,
[out] COR_PRF_CODE_INFO codeInfos[]);
Parametrar
pNativeCodeStartAddress
[i] En pekare till början av en intern funktion.
cCodeInfos
[i] Matrisens codeInfos
storlek.
pcCodeInfos
[ut] En pekare till det totala antalet tillgängliga COR_PRF_CODE_INFO strukturer.
codeInfos
[ut] En buffert som tillhandahålls av anroparen. När metoden har returnerats innehåller den en matris med COR_PRF_CODE_INFO
strukturer, som var och en beskriver ett block med inbyggd kod.
Kommentarer
Metoden GetCodeInfo4
liknar GetCodeInfo3, förutom att den kan söka efter kodinformation för olika inbyggda versioner av en metod.
Kommentar
GetCodeInfo4
kan utlösa en skräpinsamling.
Omfattningarna sorteras i ordning för att öka CIL-förskjutningen (Common Intermediate Language).
När GetCodeInfo4
du har returnerat den måste du kontrollera att bufferten codeInfos
var tillräckligt stor för att innehålla alla COR_PRF_CODE_INFO strukturer. Det gör du genom att jämföra värdet cCodeInfos
för med värdet för parametern cchName
. Om cCodeInfos
den divideras med storleken på en COR_PRF_CODE_INFO struktur är mindre än pcCodeInfos
allokerar du en större codeInfos
buffert, uppdaterar cCodeInfos
med den nya, större storleken och anropar GetCodeInfo4
igen.
Du kan också först anropa GetCodeInfo4
med en buffert med noll längd codeInfos
för att få rätt buffertstorlek. Du kan sedan ange buffertstorleken codeInfos
till värdet som returneras i pcCodeInfos
, multiplicerat med storleken på en COR_PRF_CODE_INFO struktur och anropa GetCodeInfo4
igen.
Behov
Plattformar: Se operativsystem som stöds av .NET.
Rubrik: CorProf.idl, CorProf.h
Bibliotek: CorGuids.lib
.NET-versioner: Finns sedan .NET Core 2.1