Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memberi tahu profiler bahwa pengidentifikasi fungsi yang diberikan dapat dipetakan ulang ke ID alternatif untuk digunakan dalam panggilan balik FunctionEnter2, FunctionLeave2, dan FunctionTailcall2 untuk fungsi tersebut .
FunctionIDMapper juga memungkinkan profiler menunjukkan apakah ingin menerima panggilan balik untuk fungsi tersebut.
Sintaks
UINT_PTR __stdcall FunctionIDMapper (
[in] FunctionID funcId,
[out] BOOL *pbHookFunction
);
Parameter
funcId [in] Pengidentifikasi fungsi yang akan dipetakan ulang.
pbHookFunction[out] Penunjuk ke nilai yang ditetapkan ke true jika ingin menerima panggilan balik FunctionEnter2, FunctionLeave2, dan FunctionTailcall2; jika tidak, nilai ini akan ditetapkan ke false.
Tampilkan Nilai
Profiler menampilkan nilai yang digunakan mesin eksekusi sebagai pengidentifikasi fungsi alternatif. Nilai yang ditampilkan tidak boleh null kecuali false ditampilkan dalam pbHookFunction. Jika tidak, nilai pengembalian null akan menghasilkan hasil yang tidak dapat diprediksi, termasuk mungkin menghentikan proses.
Keterangan
Fungsi FunctionIDMapper ini adalah panggilan balik. Ini diimplementasikan oleh profiler untuk memetakan kembali ID fungsi ke beberapa pengidentifikasi lain yang lebih berguna bagi profiler.
FunctionIDMapper mengembalikan ID alternatif yang akan digunakan untuk fungsi tertentu. Mesin eksekusi kemudian memenuhi permintaan profiler dengan meneruskan ID alternatif ini, selain ID fungsi tradisional, kembali ke profiler di parameter clientData dari kait FunctionEnter2, FunctionLeave2, dan FunctionTailcall2, untuk mengidentifikasi fungsi yang hook dipanggil.
Anda dapat menggunakan metode ICorProfilerInfo::SetFunctionIDMapper untuk menentukan penerapan fungsi FunctionIDMapper. Anda dapat memanggil metode ICorProfilerInfo::SetFunctionIDMapper hanya sekali, dan kami menyarankan Anda melakukannya dalam panggilan balik ICorProfilerCallback::Initialize.
Secara default, diasumsikan bahwa profiler yang mengatur bendera COR_PRF_MONITOR_ENTERLEAVE menggunakan ICorProfilerInfo::SetEventMask, dan yang menyetel kait melalui ICorProfilerInfo2::SetEnterLeaveFunctionHooks atau SetEnterLeaveFunctionHooks2, harus menerima panggilan balik FunctionEnter2, FunctionLeave2, dan FunctionTailcall2 untuk setiap fungsi. Namun,profiler dapat mengimplementasikan FunctionIDMapper untuk secara selektif menghindari menerima panggilan balik ini untuk fungsi tertentu dengan mengaturnya pbHookFunction ke false.
Profiler harus toleran terhadap kasus di mana beberapa utas aplikasi yang diprofilkan memanggil metode/fungsi yang sama secara bersamaan. Dalam kasus seperti itu, pembuat profil mungkin menerima beberapa panggilan balik FunctionIDMapper untuk FunctionID yang sama. Profiler harus yakin untuk mengembalikan nilai yang sama dari panggilan balik ini saat dipanggil beberapa kali dengan FunctionID yang sama.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari versi 1.0