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.
Memungkinkan host yang tidak dikelola untuk memuat runtime bahasa umum (CLR) ke dalam proses.
Fungsi ini tidak digunakan lagi di .NET Framework 4.
Sintaksis
HRESULT CorBindToRuntime (
[in] LPCWSTR pwszVersion,
[in] LPCWSTR pwszBuildFlavor,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] LPVOID FAR *ppv
);
Parameter-parameternya
pwszVersion [di] String yang menjelaskan versi CLR yang ingin Anda muat.
Nomor versi dalam .NET Framework terdiri dari empat bagian yang dipisahkan oleh titik: major.minor.build.revision. String yang diteruskan sebagai pwszVersion harus dimulai dengan karakter "v" diikuti oleh tiga bagian pertama dari nomor versi (misalnya, "v1.0.1529").
Beberapa versi CLR diinstal dengan pernyataan kebijakan yang menentukan kompatibilitas dengan versi CLR sebelumnya. Secara default, shim startup mengevaluasi pwszVersion terhadap pernyataan kebijakan dan memuat versi terbaru runtime yang kompatibel dengan versi yang diminta. Host dapat memaksa shim untuk melewati evaluasi kebijakan dan memuat versi yang tepat yang ditentukan dengan meneruskan pwszVersion nilai STARTUP_LOADER_SAFEMODE untuk flags parameter, seperti yang dijelaskan di bawah ini.
Jika pemanggil menentukan null untuk pwszVersion, versi terbaru runtime dimuat. Melewati null memberi host tidak ada kontrol atas versi runtime mana yang dimuat. Meskipun pendekatan ini mungkin sesuai dalam beberapa skenario, sangat disarankan agar host menyediakan versi tertentu untuk dimuat.
pwszBuildFlavor [di] String yang menentukan apakah akan memuat server atau build stasiun kerja CLR. Nilai yang berlaku adalah svr atau wks. Build server dioptimalkan untuk memanfaatkan beberapa prosesor untuk pengumpulan sampah, dan build stasiun kerja dioptimalkan untuk aplikasi klien yang berjalan pada mesin prosesor tunggal.
Jika pwszBuildFlavor diatur ke null, build stasiun kerja dimuat. Saat berjalan pada mesin prosesor tunggal, build stasiun kerja selalu dimuat, bahkan jika pwszBuildFlavor diatur ke svr. Namun, jika pwszBuildFlavor diatur ke svr dan pengumpulan sampah bersamaan ditentukan (lihat deskripsi flags parameter), build server dimuat.
rclsid [di] Dari CLSID coclass yang mengimplementasikan ICorRuntimeHost atau antarmuka ICLRRuntimeHost . Nilai yang didukung CLSID_CorRuntimeHost atau CLSID_CLRRuntimeHost.
riid [di] Antarmuka IID yang diminta dari rclsid. Nilai yang didukung IID_ICorRuntimeHost atau IID_ICLRRuntimeHost.
ppv [out] Penunjuk antarmuka yang dikembalikan ke riid.
Komentar
Jika pwszVersion menentukan versi runtime yang tidak ada, CorBindToRuntimeEx mengembalikan nilai HRESULT CLR_E_SHIM_RUNTIMELOAD.
CorBindToRuntimeEx dan CorBindToRuntime melakukan operasi yang sama, tetapi fungsi ini CorBindToRuntimeEx memungkinkan Anda mengatur bendera untuk menentukan perilaku CLR.
Konteks Eksekusi dan Alur Identitas Windows
Di versi 1 CLR, WindowsIdentity objek tidak mengalir di titik asinkron seperti utas baru, kumpulan utas, atau panggilan balik timer. Dalam clr versi 2.0, objek ExecutionContext membungkus beberapa informasi tentang utas yang sedang dijalankan dan mengalirkannya di titik asinkron apa pun, tetapi tidak di seluruh batas domain aplikasi. Demikian pula, WindowsIdentity objek juga mengalir di setiap titik asinkron. Oleh karena itu, peniruan saat ini pada utas, jika ada, juga mengalir.
Anda dapat mengubah alur dengan dua cara:
Dengan memodifikasi ExecutionContext pengaturan untuk menekan alur berdasarkan per utas (lihat SuppressFlowmetode , SuppressFlow, dan SuppressFlowWindowsIdentity ).
Dengan mengubah mode default proses ke mode kompatibilitas versi 1, di mana WindowsIdentity objek tidak mengalir di titik asinkron apa pun, terlepas dari ExecutionContext pengaturan pada utas saat ini. Bagaimana Anda mengubah mode default tergantung pada apakah Anda menggunakan antarmuka hosting terkelola yang dapat dieksekusi atau tidak dikelola untuk memuat CLR:
Untuk executable terkelola, Anda harus mengatur
enabledatribut <elemen legacyImpersonationPolicy> ketrue.Untuk antarmuka hosting yang tidak dikelola, atur
STARTUP_LEGACY_IMPERSONATIONbendera dalamflagsparameter saat memanggilCorBindToRuntimeExfungsi.
Mode kompatibilitas versi 1 berlaku untuk seluruh proses dan untuk semua domain aplikasi dalam proses.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: MSCorEE.h
Pustaka: MSCorEE.dll
Versi .NET Framework: Tersedia sejak 1.0