IHostSecurityManager::SetSecurityContext Method

Mengatur konteks keamanan utas yang sedang dijalankan.

Sintaksis

HRESULT SetSecurityContext (
    [in]  EContextType eContextType,
    [out] IHostSecurityContext** ppSecurityContext
);

Parameter-parameternya

eContextType [di] Salah satu nilai EContextType , menunjukkan jenis konteks apa yang menempatkan runtime bahasa umum (CLR) pada host.

ppSecurityContext [out] Penunjuk ke alamat objek IHostSecurityContext baru.

Mengembalikan Nilai

HRESULT Deskripsi
S_OK SetSecurityContext berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE CLR belum dimuat ke dalam proses, atau CLR dalam keadaan di mana clr tidak dapat menjalankan kode terkelola 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 utas atau serat yang diblokir sedang menunggu di atasnya.
E_FAIL Kegagalan bencana yang tidak diketahui terjadi. Ketika metode mengembalikan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting mengembalikan HOST_E_CLRNOTAVAILABLE.

Komentar

CLR memanggil SetSecurityContext dalam beberapa skenario. Sebelum menjalankan konstruktor dan finalizer kelas dan modul, CLR memanggil SetSecurityContext untuk melindungi host dari kegagalan eksekusi. Kemudian mengatur ulang konteks keamanan ke status aslinya setelah eksekusi konstruktor atau finalizer, dengan menggunakan panggilan lain ke SetSecurityContext. Pola serupa terjadi dengan penyelesaian I/O. Jika host mengimplementasikan IHostIoCompletionManager, CLR memanggil SetSecurityContext setelah host memanggil ICLRIoCompletionManager::OnComplete.

Pada titik asinkron dalam utas pekerja, CLR memanggil SetSecurityContext di dalam ThreadPool.QueueUserWorkItem atau dalam IHostThreadPoolManager::QueueUserWorkItem, tergantung pada apakah host atau CLR mengimplementasikan kumpulan utas.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Perpustakaan: Disertakan sebagai sumber daya dalam MSCorEE.dll

Versi .NET Framework: Tersedia sejak 2.0

Baca juga