FunctionLeave2 İşlevi
Bir işlevin çağırana dönmek üzere olduğunu profil oluşturucuya bildirir ve yığın çerçevesi ve işlev dönüş değeri hakkında bilgi sağlar.
Sözdizimi
void __stdcall FunctionLeave2 (
[in] FunctionID funcId,
[in] UINT_PTR clientData,
[in] COR_PRF_FRAME_INFO func,
[in] COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange
);
Parametreler
funcId
[in] Dönen işlevin tanımlayıcısı.
clientData
[in] Profil oluşturucunun daha önce FunctionIDMapper işlevi aracılığıyla belirttiği yeniden eşlenen işlev tanımlayıcısı.
func
[in] COR_PRF_FRAME_INFO
Yığın çerçevesi hakkındaki bilgilere işaret eden bir değer.
Profil oluşturucu bunu ICorProfilerInfo2::GetFunctionInfo2 yöntemindeki yürütme altyapısına geri geçirilebilen opak bir tanıtıcı olarak ele almalıdır.
retvalRange
[in] İşlevin dönüş değerinin bellek konumunu belirten bir COR_PRF_FUNCTION_ARGUMENT_RANGE yapısının işaretçisi.
Dönüş değeri bilgilerine erişmek için bayrağının COR_PRF_ENABLE_FUNCTION_RETVAL
ayarlanması gerekir. Profil oluşturucu, olay bayraklarını ayarlamak için ICorProfilerInfo::SetEventMask yöntemini kullanabilir.
Açıklamalar
ve retvalRange
parametrelerinin func
değerleri işlev döndürdüğünde FunctionLeave2
geçerli değildir çünkü değerler değişebilir veya yok edilebilir.
FunctionLeave2
İşlev bir geri çağırmadır; bunu uygulamanız gerekir. Uygulamanın (naked
) depolama sınıfı özniteliğini __declspec
kullanması gerekir.
Yürütme altyapısı bu işlevi çağırmadan önce hiçbir kayıt kaydetmez.
Girişte, kayan nokta birimindeki (FPU) olanlar da dahil olmak üzere kullandığınız tüm yazmaçları kaydetmeniz gerekir.
Çıkışta, çağıranı tarafından gönderilen tüm parametreleri çıkararak yığını geri yüklemeniz gerekir.
uygulaması FunctionLeave2
, çöp toplamayı geciktireceğinden engellememelidir. Yığın çöp toplamaya uygun bir durumda olmayabileceği için uygulama çöp toplama denememelidir. Bir çöp toplama denenirse, çalışma zamanı dönene kadar FunctionLeave2
engeller.
Ayrıca, işlevin FunctionLeave2
yönetilen koda çağrı yapılmaması veya herhangi bir şekilde yönetilen bellek ayırmaya neden olması gerekir.
Gereksinimler
Platform: Bkz. Sistem Gereksinimleri.
Üstbilgi: CorProf.idl
Kitaplığı: CorGuids.lib
.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir