Bagikan melalui


Fungsi FunctionEnter3WithInfo

Memberi tahu profiler bahwa kontrol sedang diteruskan ke suatu fungsi, dan memberikan pegangan yang dapat diteruskan ke metode ICorProfilerInfo3::GetFunctionEnter3Info untuk mengambil bingkai tumpukan dan argumen fungsi.

Sintaks

void __stdcall FunctionEnter3WithInfo(  
               [in] FunctionIDOrClientID functionIDOrClientID,  
               [in] COR_PRF_ELT_INFO eltInfo);  

Parameter

functionIDOrClientID [in] Pengidentifikasi fungsi tempat kontrol diteruskan.

eltInfo [in] Handel buram yang mewakili informasi tentang bingkai tumpukan tertentu. Handel ini hanya berlaku selama panggilan balik yang diteruskan.

Keterangan

Metode panggilan balik FunctionEnter3WithInfo memberi tahu profiler saat fungsi dipanggil, dan memungkinkan profiler menggunakan metode ICorProfilerInfo3::GetFunctionEnter3Info untuk memeriksa nilai argumen. Untuk mengakses informasi argumen, bendera COR_PRF_ENABLE_FUNCTION_ARGS harus diatur. Profiler dapat menggunakan metode ICorProfilerInfo::SetEventMask untuk mengatur tanda peristiwa, lalu menggunakan metode ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo untuk mendaftarkan implementasi fungsi ini.

Fungsi FunctionEnter3WithInfo adalah panggilan balik; Anda harus menerapkannya. Penerapan harus menggunakan atribut kelas penyimpanan __declspec(naked).

Mesin eksekusi tidak menyimpan register apa pun sebelum memanggil fungsi ini.

  • Saat masuk, Anda harus menyimpan semua register yang Anda gunakan, termasuk yang ada di floating-point unit (FPU).

  • Saat keluar, Anda harus memulihkan tumpukan dengan memunculkan semua parameter yang didorong oleh pemanggilnya.

Penerapan FunctionEnter3WithInfo tidak boleh memblokir karena akan menunda pengumpulan sampah. Penerapan tidak boleh mencoba pengumpulan sampah, karena tumpukannya mungkin tidak dalam keadaan yang ramah akan pengumpulan sampah. Jika pengumpulan sampah dicoba, runtime akan memblokir hingga FunctionEnter3WithInfo kembali.

Fungsi FunctionEnter3WithInfo tidak boleh memanggil kode terkelola atau menyebabkan alokasi memori terkelola dengan cara apa pun.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorProf.idl

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga