Aracılığıyla paylaş


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 __declspeckullanması 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

Ayrıca bkz.