Aracılığıyla paylaş


FunctionEnter2 İşlevi

Denetimin bir işleve geçirildiğini profil oluşturucuya bildirir ve yığın çerçevesi ve işlev bağımsız değişkenleri hakkında bilgi sağlar. Bu işlev FunctionEnter işlevinin yerini alır.

Sözdizimi

void __stdcall FunctionEnter2 (  
    [in]  FunctionID                       funcId,
    [in]  UINT_PTR                         clientData,
    [in]  COR_PRF_FRAME_INFO               func,
    [in]  COR_PRF_FUNCTION_ARGUMENT_INFO  *argumentInfo  
);  

Parametreler

funcId [in] Denetimin geçirildiği işlevin tanımlayıcısı.

clientData [in] Profil oluşturucunun daha önce FunctionIDMapper işlevini kullanarak 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.

argumentInfo [in] İşlevin bağımsız değişkenlerinin bellekteki konumlarını belirten bir COR_PRF_FUNCTION_ARGUMENT_INFO yapısının işaretçisi.

Bağımsız değişken bilgilerine erişmek için bayrağının COR_PRF_ENABLE_FUNCTION_ARGS ayarlanması gerekir. Profil oluşturucu, olay bayraklarını ayarlamak için ICorProfilerInfo::SetEventMask yöntemini kullanabilir.

Açıklamalar

ve argumentInfo parametrelerinin func değerleri işlev döndürdüğünde FunctionEnter2 geçerli değildir çünkü değerler değişebilir veya yok edilebilir.

FunctionEnter2 işlevi 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 yazmaç 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ı FunctionEnter2 , çöp toplamayı geciktireceği için engellememelidir. Yığın çöp toplama dostu bir durumda olmayabileceği için uygulama çöp toplamayı denememelidir. Çöp toplama denenirse, çalışma zamanı dönene kadar FunctionEnter2 engeller.

Ayrıca, işlevin FunctionEnter2 yönetilen koda çağrı yapmaması 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.