Objek Kernel
Handel objek kernel bersifat spesifik proses. Artinya, proses harus membuat objek atau membuka objek yang ada untuk mendapatkan handel objek kernel. Batas per proses pada handel kernel adalah 2^24. Namun, handel disimpan di kumpulan halaman, sehingga jumlah handel aktual yang dapat Anda buat didasarkan pada memori yang tersedia. Jumlah handel yang dapat Anda buat pada Windows 32-bit secara signifikan lebih rendah dari 2^24.
Proses apa pun dapat membuat handel baru ke objek kernel yang ada (bahkan yang dibuat oleh proses lain), asalkan proses mengetahui nama objek dan memiliki akses keamanan ke objek. Handel objek kernel mencakup hak akses yang menunjukkan tindakan yang dapat diberikan atau ditolak untuk proses. Aplikasi menentukan hak akses saat membuat objek atau mendapatkan handel objek yang ada. Setiap jenis objek kernel mendukung serangkaian hak aksesnya sendiri. Misalnya, penanganan aktivitas dapat mengatur atau menunggu akses (atau keduanya), handel file dapat memiliki akses baca atau tulis (atau keduanya), dan sebagainya. Untuk informasi selengkapnya, lihat Objek Yang Dapat Diamankan.
Dalam ilustrasi berikut, aplikasi membuat objek peristiwa. Fungsi CreateEvent membuat objek peristiwa dan mengembalikan handel objek.
Setelah objek peristiwa dibuat, aplikasi dapat menggunakan penanganan aktivitas untuk mengatur atau menunggu peristiwa. Handel tetap valid sampai aplikasi menutup handel atau dihentikan.
Sebagian besar objek kernel mendukung beberapa handel ke satu objek. Misalnya, aplikasi dalam ilustrasi sebelumnya dapat memperoleh handel objek peristiwa tambahan dengan menggunakan fungsi OpenEvent , seperti yang ditunjukkan dalam ilustrasi berikut.
Metode ini memungkinkan aplikasi untuk memiliki handel dengan hak akses yang berbeda. Misalnya, Handel 1 mungkin telah mengatur dan menunggu akses ke peristiwa, dan Menangani 2 mungkin hanya memiliki akses tunggu.
Jika proses lain mengetahui nama peristiwa dan memiliki akses keamanan ke objek, proses tersebut dapat membuat handel objek peristiwanya sendiri dengan menggunakan OpenEvent. Aplikasi pembuatan juga dapat menduplikasi salah satu handelnya ke dalam proses yang sama atau ke proses lain dengan menggunakan fungsi DuplicateHandle .
Objek tetap dalam memori selama setidaknya ada satu handel objek. Dalam ilustrasi berikut, aplikasi menggunakan fungsi CloseHandle untuk menutup handel objek peristiwa mereka. Ketika tidak ada handel peristiwa, sistem menghapus objek dari memori, seperti yang ditunjukkan dalam ilustrasi berikut.
Sistem mengelola objek file agak berbeda dari objek kernel lainnya. Objek file berisi penunjuk file — penunjuk ke byte berikutnya untuk dibaca atau ditulis dalam file. Setiap kali aplikasi membuat handel file baru, sistem membuat objek file baru. Oleh karena itu, lebih dari satu objek file dapat merujuk ke satu file pada disk, seperti yang ditunjukkan dalam ilustrasi berikutnya.
Hanya melalui duplikasi atau pewarisan dapat lebih dari satu handel file merujuk ke objek file yang sama, seperti yang ditunjukkan dalam ilustrasi berikut.
Tabel berikut mencantumkan masing-masing objek kernel, bersama dengan fungsi pembuat dan perusak setiap objek. Fungsi pembuat membuat objek dan handel objek atau membuat handel objek baru yang sudah ada. Fungsi perusak menutup handel objek. Ketika aplikasi menutup handel terakhir ke objek kernel, sistem akan menghapus objek dari memori.
Topik terkait