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.
Fungsi ConvertToAutoInheritPrivateObjectSecurity mengonversi deskriptor keamanan dan daftar kontrol akses (ACL) ke format yang mendukung penyebaran otomatis entri kontrol akses (ASE) yang dapat diwariskan.
Sintaks
BOOL ConvertToAutoInheritPrivateObjectSecurity(
[in, optional] PSECURITY_DESCRIPTOR ParentDescriptor,
[in] PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR *NewSecurityDescriptor,
[in, optional] GUID *ObjectType,
[in] BOOLEAN IsDirectoryObject,
[in] PGENERIC_MAPPING GenericMapping
);
Parameter
[in, optional] ParentDescriptor
Penunjuk ke deskriptor keamanan untuk kontainer induk objek. Jika tidak ada kontainer induk, parameter ini adalah NULL.
[in] CurrentSecurityDescriptor
Penunjuk ke pendeskripsi keamanan objek saat ini.
[out] NewSecurityDescriptor
Penunjuk ke variabel yang menerima penunjuk ke deskriptor keamanan relatif mandiri yang baru dialokasikan. Adalah tanggung jawab pemanggil untuk memanggil fungsi DestroyPrivateObjectSecurity untuk membebaskan deskriptor keamanan ini.
[in, optional] ObjectType
Penunjuk ke struktur GUID yang mengidentifikasi jenis objek yang terkait dengan parameter CurrentSecurityDescriptor . Jika objek tidak memiliki GUID, parameter ini harus NULL.
[in] IsDirectoryObject
Jika TRUE, objek baru adalah kontainer dan dapat berisi objek lain. Jika FALSE, objek baru bukan kontainer.
[in] GenericMapping
Penunjuk ke struktur GENERIC_MAPPING yang menentukan pemetaan dari setiap hak generik ke hak tertentu untuk objek.
Nilai kembali
Jika fungsi berhasil, fungsi mengembalikan bukan nol.
Jika fungsi gagal, fungsi akan mengembalikan nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Fungsi ConvertToAutoInheritPrivateObjectSecurity mencoba menentukan apakah ACE dalam daftar kontrol akses diskresi (DACL) dan daftar kontrol akses sistem (SACL) dari deskriptor keamanan saat ini diwarisi dari deskriptor keamanan induk. Fungsi meneruskan parameter ParentDescriptor ke fungsi CreatePrivateObjectSecurityEx untuk mendapatkan ACL yang hanya berisi ACE yang diwariskan. Kemudian membandingkan ACE ini dengan ACE dalam deskriptor keamanan asli untuk menentukan ACE asli mana yang diwarisi. ACE tidak perlu cocok satu-ke-satu. Misalnya, ACE yang memungkinkan akses baca dan tulis ke wali dapat setara dengan dua ACE: ACE yang memungkinkan akses baca dan ACE yang memungkinkan akses tulis.
Setiap ACE dalam deskriptor keamanan asli yang setara dengan ACE yang diwarisi dari deskriptor keamanan induk ditandai dengan bendera INHERITED_ACE dan ditambahkan ke pendeskripsi keamanan baru. Semua ACE lain dalam deskriptor keamanan asli ditambahkan ke deskriptor keamanan baru sebagai ACE yang tidak diwariskan.
Jika DACL asli tidak memiliki ACE yang diwariskan, fungsi mengatur bendera SE_DACL_PROTECTED di bit kontrol deskriptor keamanan baru. Demikian pula, bendera SE_SACL_PROTECTED diatur jika tidak ada ACE di SACL yang diwarisi.
Untuk DACL yang telah mewarisi ACE, fungsi menyusun ulang ACE menjadi dua grup. Grup pertama memiliki ACE yang langsung diterapkan ke objek . Grup kedua telah mewarisi ACE. Urutan ini memastikan bahwa ACE yang tidak diwariskan telah diutamakan daripada ACE yang diwariskan. Untuk informasi selengkapnya, lihat Urutan ACE dalam DACL.
Fungsi ini mengatur bendera SE_DACL_AUTO_INHERITED dan SE_SACL_AUTO_INHERITED di bit kontrol deskriptor keamanan baru.
Fungsi ini tidak mengubah urutan ACE yang diizinkan akses sehubungan dengan ACE yang ditolak akses di DACL karena untuk melakukannya akan mengubah semantik pendeskripsi keamanan yang dihasilkan. Jika fungsi tidak dapat mengonversi DACL tanpa mengubah semantik, fungsi tersebut membuat DACL tidak berubah dan mengatur bendera SE_DACL_PROTECTED.
Deskriptor keamanan baru memiliki pemilik dan grup utama yang sama dengan deskriptor keamanan asli.
Deskriptor keamanan baru setara dengan deskriptor keamanan asli, sehingga pemanggil tidak memerlukan hak akses atau hak istimewa untuk memperbarui deskriptor keamanan ke format baru.
Fungsi ini berfungsi dengan ACL ACL_REVISION dan ACL_REVISION_DS.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
| Target Platform | Windows |
| Header | securitybaseapi.h (termasuk Windows.h) |
| Pustaka | Advapi32.lib |
| DLL | Advapi32.dll |