Aracılığıyla paylaş


ICorProfilerInfo2::GetFunctionInfo2 Method

Bir işlevin üst sınıfını, meta veri belirtecini ClassID ve varsa her tür bağımsız değişkeninin değerini alır.

Syntax

HRESULT GetFunctionInfo2(
    [in]  FunctionID funcId,
    [in]  COR_PRF_FRAME_INFO frameInfo,
    [out] ClassID *pClassId,
    [out] ModuleID *pModuleId,
    [out] mdToken *pToken,
    [in]  ULONG32 cTypeArgs,
    [out] ULONG32 *pcTypeArgs,
    [out] ClassID typeArgs[]);

Parameters

funcId [in] Üst sınıfın ve diğer bilgilerin alındığı işlevin kimliği.

frameInfo [in] Yığın COR_PRF_FRAME_INFO çerçevesi hakkındaki bilgilere işaret eden bir değer.

pClassId [out] İşlevin üst sınıfına bir işaretçi.

pModuleId [out] İşlevin üst sınıfının tanımlandığı modülün işaretçisi.

pToken [out] İşlev için meta veri belirtecinin işaretçisi.

cTypeArgs [in] Dizinin boyutu typeArgs .

pcTypeArgs [out] Toplam değer sayısına yönelik ClassID bir işaretçi.

typeArgs [out] Her biri işlevin ClassID tür bağımsız değişkeninin kimliği olan değer dizisi. yöntemi döndürdüğünde, typeArgs değerlerin ClassID bir kısmını veya tümünü içerir.

Remarks

Profil oluşturucu kodu, belirli bir modülün meta veri arabirimini almak için ICorProfilerInfo::GetModuleMetaData çağrısı yapabilir. Tarafından başvurulmuş pToken konuma döndürülen meta veri belirteci daha sonra işlevin meta verilerine erişmek için kullanılabilir.

ve typeArgs parametreleri aracılığıyla pClassId döndürülen sınıf kimliği ve tür bağımsız değişkenleri, aşağıdaki tabloda gösterildiği gibi parametrede frameInfo geçirilen değere bağlıdır.

Parametrenin frameInfo değeri Result
Geri COR_PRF_FRAME_INFO çağırmadan alınan değer FunctionEnter2 ClassIDtarafından pClassIdbaşvuruda bulunılan konumda döndürülen ve dizide typeArgs döndürülen tüm tür bağımsız değişkenleri tam olacaktır.
COR_PRF_FRAME_INFO Geri çağırma dışında bir kaynaktan alınan bir FunctionEnter2 Tam ClassID ve tür bağımsız değişkenleri belirlenemez. Başka bir ifadeyle ClassID null olabilir ve bazı tür bağımsız değişkenleri olarak Objectgeri gelebilir.
Zero Tam ClassID ve tür bağımsız değişkenleri belirlenemez. Başka bir ifadeyle ClassID null olabilir ve bazı tür bağımsız değişkenleri olarak Objectgeri gelebilir.

Döndürdükten sonra GetFunctionInfo2 , arabelleğin typeArgs tüm ClassID değerleri içerecek kadar büyük olduğunu doğrulamanız gerekir. Bunu yapmak için işaret eden pcTypeArgs değeri parametresinin değeriyle karşılaştırın cTypeArgs . Bir değerin boyutuna göre bölünenden cTypeArgs daha büyük bir ClassID değere işaret edersepcTypeArgs, daha büyük pcTypeArgs bir arabellek ayırın, yeni, daha büyük boyutla güncelleştirin cTypeArgs ve yeniden çağırınGetFunctionInfo2.

Alternatif olarak, doğru arabellek boyutunu elde etmek için önce sıfır uzunlukta GetFunctionInfo2 bir arabellekle çağırabilirsinizpcTypeArgs. Ardından arabellek boyutunu değerin boyutuna ClassID bölünerek döndürülen pcTypeArgs değere ayarlayabilir ve yeniden çağırabilirsinizGetFunctionInfo2.

Requirements

Platformlar: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET Framework Sürümleri : 2.0 sürümünden itibaren kullanılabilir

See also