Fungsi AddAccessAllowedObjectAce (securitybaseapi.h)
Fungsi AddAccessAllowedObjectAce menambahkan entri kontrol akses yang diizinkan akses (ACE) ke akhir daftar kontrol akses diskresi (DACL). ACE baru dapat memberikan akses ke objek, atau ke set properti atau properti pada objek. Anda juga dapat menggunakan AddAccessAllowedObjectAce untuk menambahkan ACE yang hanya dapat diwarisi oleh tipe objek anak tertentu.
Sintaks
BOOL AddAccessAllowedObjectAce(
[in, out] PACL pAcl,
[in] DWORD dwAceRevision,
[in] DWORD AceFlags,
[in] DWORD AccessMask,
[in, optional] GUID *ObjectTypeGuid,
[in, optional] GUID *InheritedObjectTypeGuid,
[in] PSID pSid
);
Parameter
[in, out] pAcl
Penunjuk ke DACL. Fungsi AddAccessAllowedObjectAce menambahkan ACE yang diizinkan akses ke akhir DACL ini. ACE dalam bentuk struktur ACCESS_ALLOWED_OBJECT_ACE .
[in] dwAceRevision
Menentukan tingkat revisi DACL yang sedang dimodifikasi. Nilai ini harus ACL_REVISION_DS. Jika tingkat revisi DACL lebih rendah dari ACL_REVISION_DS, fungsi mengubahnya menjadi ACL_REVISION_DS.
[in] AceFlags
Sekumpulan bendera bit yang mengontrol pewarisan ACE. Fungsi ini menetapkan bendera ini di anggota AceFlags dari struktur ACE_HEADER ACE baru. Parameter ini bisa menjadi kombinasi dari nilai berikut.
Nilai | Makna |
---|---|
|
ACE diwarisi oleh objek kontainer. |
|
ACE tidak berlaku untuk objek tempat daftar kontrol akses (ACL) ditetapkan, tetapi dapat diwariskan oleh objek anak. |
|
Menunjukkan ACE yang diwariskan. Bendera ini memungkinkan operasi yang mengubah keamanan pada pohon objek untuk memodifikasi ACE yang diwariskan, sambil tidak mengubah ACE yang langsung diterapkan ke objek. |
|
Bit OBJECT_INHERIT_ACE dan CONTAINER_INHERIT_ACE tidak disebarkan ke ACE yang diwariskan. |
|
ACE diwarisi oleh objek nonkontainer. |
[in] AccessMask
Sekumpulan bendera bit yang menggunakan format ACCESS_MASK . Bendera ini menentukan hak akses yang diizinkan ACE baru untuk pengidentifikasi keamanan (SID) yang ditentukan.
[in, optional] ObjectTypeGuid
Penunjuk ke struktur GUID yang mengidentifikasi jenis objek, kumpulan properti, atau properti yang dilindungi oleh ACE baru. Jika parameter ini ADALAH NULL, ACE baru melindungi objek tempat DACL ditetapkan.
[in, optional] InheritedObjectTypeGuid
Penunjuk ke struktur GUID yang mengidentifikasi jenis objek yang dapat mewarisi ACE baru. Jika parameter ini bukan NULL, hanya jenis objek yang ditentukan yang dapat mewarisi ACE. Jika NULL, semua jenis objek anak dapat mewarisi ACE. Dalam kedua kasus, pewarisan juga dikendalikan oleh nilai parameter AceFlags , serta oleh perlindungan apa pun terhadap warisan yang ditempatkan pada objek anak.
[in] pSid
Penunjuk ke SID yang mengidentifikasi pengguna, grup, atau sesi masuk tempat ACE baru mengizinkan akses.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Berikut ini adalah kemungkinan nilai kesalahan.
Menampilkan kode | Deskripsi |
---|---|
|
ACE baru tidak cocok dengan ACL. Buffer ACL yang lebih besar diperlukan. |
|
ACL yang ditentukan tidak terbentuk dengan benar. |
|
Parameter AceFlags tidak valid. |
|
SID yang ditentukan tidak valid secara struktural. |
|
Revisi yang ditentukan tidak diketahui atau tidak kompatibel dengan ACL. |
|
ACE berhasil ditambahkan. |
Keterangan
Jika ObjectTypeGuid dan InheritedObjectTypeGuid adalah NULL, gunakan fungsi AddAccessAllowedAceEx daripada AddAccessAllowedObjectAce. Ini disarankan karena ACCESS_ALLOWED_ACE lebih kecil dan lebih efisien daripada ACCESS_ALLOWED_OBJECT_ACE.
Pemanggil harus memastikan bahwa ACE ditambahkan ke DACL dalam urutan yang benar. Untuk informasi selengkapnya, lihat Urutan ACE dalam DACL.
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 |