Bagikan melalui


Metode IHostTaskManager::CallNeedsHostHook

Memungkinkan host untuk menentukan apakah runtime bahasa umum (CLR) dapat menjajarkan panggilan tertentu dengan fungsi yang tidak dikelola.

Sintaks

HRESULT CallNeedsHostHook (  
    [in]  SIZE_T target,
    [out] BOOL   *pbCallNeedsHostHook  
);  

Parameter

target
[in] Alamat dalam file portabel yang dapat dieksekusi (PE) yang dipetakan dari fungsi yang tidak dikelola yang akan dipanggil.

pbCallNeedsHostHook
[out] Penunjuk ke nilai Boolean yang menunjukkan apakah host mengharuskan panggilan dikaitkan.

Tampilkan Nilai

HRESULT Deskripsi
S_OK CallNeedsHostHook berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE Runtime bahasa umum belum dimuat ke dalam proses, atau runtime bahasa umum dalam status yaitu tidak dapat menjalankan kode aman atau memproses panggilan dengan sukses.
HOST_E_TIMEOUT Waktu panggilan habis.
HOST_E_NOT_OWNER Pemanggil tidak memiliki kunci.
HOST_E_ABANDONED Peristiwa dibatalkan saat rangkaian atau fiber yang diblokir sedang menunggunya.
E_FAIL Telah terjadi kegagalan bencana yang tidak diketahui. Saat metode menampilkan E_FAIL, CLR tidak dapat digunakan lagi dalam proses. Panggilan berikutnya ke metode hosting menampilkan HOST_E_CLRNOTAVAILABLE.

Keterangan

Untuk membantu mengoptimalkan eksekusi kode, CLR melakukan analisis setiap panggilan pemanggilan platform selama kompilasi untuk menentukan apakah panggilan dapat disejajarkan. CallNeedsHostHook memungkinkan host untuk mengganti keputusan tersebut dengan mengharuskan pengaitan panggilan ke fungsi yang tidak dikelola. Jika host memerlukan pengaitan, runtime tidak menjajarkan panggilan.

Host biasanya memerlukan pengaitan yang mengharuskannya menyesuaikan status titik mengambang, atau setelah menerima pemberitahuan bahwa panggilan memasuki status di mana host tidak dapat melacak permintaan runtime untuk memori atau kunci apa pun yang diambil. Jika host mengharuskan panggilan dikaitkan, runtime memberi tahu host transisi ke dan dari kode terkelola dengan menggunakan panggilan ke EnterRuntime, LeaveRuntime, ReverseEnterRuntime, dan ReverseLeaveRuntime.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga