Aracılığıyla paylaş


FunctionIDMapper İşlevi

Bir işlevin verilen tanımlayıcısının, bu işlev için FunctionEnter2, FunctionLeave2 ve FunctionTailcall2 geri çağırmalarında kullanılacak alternatif bir kimliğe yeniden eşlenebileceğini profil oluşturucuya bildirir. FunctionIDMapper ayrıca profil oluşturucunun bu işlev için geri çağırma almak isteyip istemediğini belirtmesini sağlar.

Sözdizimi

UINT_PTR __stdcall FunctionIDMapper (  
    [in]  FunctionID  funcId,
    [out] BOOL       *pbHookFunction  
);  

Parametreler

funcId [in] Yeniden eşlenecek işlev tanımlayıcısı.

pbHookFunction[out] , FunctionLeave2ve FunctionTailcall2 geri çağırmaları almak FunctionEnter2isterse profil oluşturucunun ayarlı true olduğu bir değerin işaretçisi; aksi takdirde, bu değeri olarak falseayarlar.

Dönüş Değeri

Profil oluşturucu, yürütme altyapısının alternatif işlev tanımlayıcısı olarak kullandığı bir değer döndürür. içinde döndürülmediği pbHookFunctionsürece false dönüş değeri null olamaz. Aksi takdirde null dönüş değeri, işlemi durdurma da dahil olmak üzere öngörülemeyen sonuçlar üretir.

Açıklamalar

FunctionIDMapper işlevi bir geri çağırmadır. Profil oluşturucu tarafından bir işlev kimliğini profil oluşturucu için daha yararlı olan başka bir tanımlayıcıyla yeniden eşlemek için uygulanır. , FunctionIDMapper herhangi bir işlev için kullanılacak alternatif kimliği döndürür. Yürütme altyapısı daha sonra, kancanın çağrıldığı işlevi tanımlamak için geleneksel işlev kimliğine ek olarak , FunctionLeave2ve FunctionTailcall2 kancalarının parametresindeki clientDataFunctionEnter2profil oluşturucuya bu alternatif kimliği geçirerek profil oluşturucunun isteğini yerine getirir.

İşlevin uygulanmasını FunctionIDMapper belirtmek için ICorProfilerInfo::SetFunctionIDMapper yöntemini kullanabilirsiniz. yöntemini yalnızca bir kez çağırabilirsiniz ICorProfilerInfo::SetFunctionIDMapper ve bunu ICorProfilerCallback::Initialize callback içinde yapmanızı öneririz.

Varsayılan olarak, ICorProfilerInfo::SetEventMask kullanarak COR_PRF_MONITOR_ENTERLEAVE bayrağını ayarlayan ve ICorProfilerInfo::SetEnterLeaveFunctionHooks veya ICorProfilerInfo2::SetEnterLeaveFunctionHooks2 aracılığıyla kancaları ayarlayan bir profil oluşturucunun her işlev için , FunctionLeave2ve FunctionTailcall2 geri çağırmalarını alması FunctionEnter2gerektiği varsayılır. Ancak, profil oluşturucular olarak ayarlayarak pbHookFunctionfalsebelirli işlevler için bu geri çağırmaları almayı seçmeli olarak önlemek için uygulayabilirFunctionIDMapper.

Profil oluşturucular, profili oluşturulmuş bir uygulamanın birden çok iş parçacığının aynı anda aynı yöntemi/işlevi çağırdığı durumlara dayanıklı olmalıdır. Bu gibi durumlarda, profil oluşturucu aynı FunctionIDiçin birden çok FunctionIDMapper geri çağırma alabilir. Aynı ile birden çok kez FunctionIDçağrıldığında profil oluşturucunun bu geri çağırmadan aynı değerleri döndüreceği kesin olmalıdır.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorProf.idl

Kitaplığı: CorGuids.lib

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

Ayrıca bkz.