Bagikan melalui


Namespace Objek

Namespace objek melindungi objek bernama dari akses yang tidak sah. Membuat namespace privat memungkinkan aplikasi dan layanan untuk membangun lingkungan yang lebih aman.

Proses dapat membuat namespace privat menggunakan fungsi CreatePrivateNamespace . Fungsi ini mengharuskan Anda menentukan batas yang menentukan bagaimana objek di namespace layanan akan diisolasi. Pemanggil harus berada dalam batas yang ditentukan agar operasi pembuatan berhasil. Untuk menentukan batas, gunakan fungsi CreateBoundaryDescriptor dan AddSIDToBoundaryDescriptor .

Parameter lpAliasPrefix dari CreatePrivateNamespace berfungsi sebagai nama namespace layanan. Setiap namespace diidentifikasi secara unik dengan nama dan batasannya. Sistem mendukung beberapa namespace privat dengan nama yang sama, selama menentukan batas yang berbeda.

Misalkan proses meminta pembuatan namespace layanan, NS1, yang menentukan batas yang berisi dua elemen: SID administrator dan nomor sesi saat ini. Namespace dibuat jika proses berjalan di bawah akun Administrator dalam sesi yang ditentukan. Proses lain dapat mengakses namespace layanan ini menggunakan fungsi OpenPrivateNamespace . Nama dan batas yang ditentukan harus cocok jika proses ini adalah membuka namespace yang dibuat oleh proses pertama. Perhatikan bahwa proses dapat membuka namespace yang ada meskipun tidak berada dalam batas kecuali pembuat membatasi akses ke namespace layanan menggunakan parameter lpPrivateNamespaceAttributes .

Objek yang dibuat di namespace ini memiliki nama yang merupakannama objekawalan\ formulir. Awalan adalah nama namespace yang ditentukan oleh parameter lpAliasPrefix dari CreatePrivateNamespace. Misalnya, untuk membuat objek peristiwa bernama MyEvent di namespace NS1, panggil fungsi CreateEvent dengan parameter lpName yang diatur ke NS1\MyEvent.

Proses yang membuat namespace layanan dapat menggunakan fungsi ClosePrivateNamespace untuk menutup handel ke namespace. Handel juga ditutup ketika proses yang membuat namespace berhenti. Setelah handel namespace ditutup, panggilan berikutnya ke OpenPrivateNamespace gagal, tetapi semua operasi pada objek di namespace layanan berhasil.

Namespace Objek Kernel