Struktur ACCESS_ALLOWED_OBJECT_ACE menentukan entri kontrol akses (ACE) yang mengontrol akses yang diizinkan ke objek, set properti, atau properti. ACE berisi sekumpulan hak akses, GUID yang mengidentifikasi jenis objek, dan pengidentifikasi keamanan (SID) yang mengidentifikasi wali amanat kepada siapa sistem akan memberikan akses. ACE juga berisi GUID dan sekumpulan bendera yang mengontrol pewarisan ACE menurut objek anak.
ACE_HEADER struktur yang menentukan ukuran dan jenis ACE. Ini juga berisi bendera yang mengontrol pewarisan ACE oleh objek turunan. Anggota AceType struktur ACE_HEADER harus diatur ke ACCESS_ALLOWED_OBJECT_ACE_TYPE, dan anggota AceSize harus diatur ke jumlah total byte yang dialokasikan untuk struktur ACCESS_ALLOWED_OBJECT_ACE.
Mask
ACCESS_MASK yang menentukan hak akses yang akan diizinkan sistem kepadawali amanat .
Flags
Sekumpulan bendera bit yang menunjukkan apakah ObjectType dan anggota InheritedObjectType ada. Parameter ini bisa berupa satu atau beberapa nilai berikut.
Nilai
Arti
0
Tidak ada ObjectType atau InheritedObjectType. Anggota SidStart mengikuti segera setelah anggota Bendera .
ACE_OBJECT_TYPE_PRESENT
ObjectType ada dan berisiGUID .
Jika nilai ini tidak ditentukan, anggota InheritedObjectType mengikuti segera setelah anggota Bendera .
ACE_INHERITED_OBJECT_TYPE_PRESENT
inheritedObjectType ada dan berisiGUID .
Jika nilai ini tidak ditentukan, semua jenis objek anak dapat mewarisi ACE.
ObjectType
Anggota ini hanya ada jika bit ACE_OBJECT_TYPE_PRESENT diatur dalam anggota Bendera . Jika tidak, anggotaInheritedObjectType mengikuti segera setelah anggota Bendera .
Jika anggota ini ada, ini adalah struktur GUID yang mengidentifikasi kumpulan properti, properti, hak yang diperluas, atau jenis objek anak. Tujuan GUID ini tergantung pada hak akses yang ditentukan dalam Mask anggota.
Nilai
Arti
ADS_RIGHT_DS_CONTROL_ACCESS
ObjectTypeGUID mengidentifikasi hak akses yang diperluas.
ADS_RIGHT_DS_CREATE_CHILD
ObjectTypeGUID mengidentifikasi jenis objek anak. ACE mengontrol hak wali untuk membuat tipe objek anak ini.
ADS_RIGHT_DS_READ_PROP
ObjectTypeGUID mengidentifikasi kumpulan properti atau properti objek. ACE mengontrol hak wali untuk membaca properti atau kumpulan properti.
ADS_RIGHT_DS_WRITE_PROP
ObjectTypeGUID mengidentifikasi kumpulan properti atau properti objek. ACE mengontrol hak wali untuk menulis properti atau kumpulan properti.
ADS_RIGHT_DS_SELF
GUID ObjectType mengidentifikasi penulisan yang divalidasi.
InheritedObjectType
Anggota ini hanya ada jika bit ACE_INHERITED_OBJECT_TYPE_PRESENT diatur dalam anggota Bendera .
Jika anggota ini ada, ini adalah struktur GUID yang mengidentifikasi jenis objek anak yang dapat mewarisi ACE. Warisan juga dikendalikan oleh bendera warisan dalam ACE_HEADER, serta dengan perlindungan apa pun terhadap warisan yang ditempatkan pada objek anak.
Offset anggota ini dapat bervariasi. Jika anggota Bendera tidak berisi bendera ACE_OBJECT_TYPE_PRESENT, anggota InheritedObjectType dimulai pada offset yang ditentukan oleh anggota ObjectType.
SidStart
Menentukan DWORD pertama dari SID yang mengidentifikasi wali amanat kepada siapa hak akses diberikan. Byte SID yang tersisa disimpan dalam memori yang berdampingan setelah anggota SidStart . SID ini dapat ditambahkan dengan data aplikasi.
Offset anggota ini dapat bervariasi. Jika anggota Bendera adalah nol, anggota SidStart dimulai pada offset yang ditentukan oleh anggota ObjectType. Jika Bendera hanya berisi satu bendera (baik ACE_OBJECT_TYPE_PRESENT atau ACE_INHERITED_OBJECT_TYPE_PRESENT), anggota SidStart dimulai pada offset yang ditentukan oleh anggota InheritedObjectType.
Komentar
Jika ObjectType atau InheritedObjectTypeGUID ditentukan, struktur ACCESS_ALLOWED_OBJECT_ACE memiliki semantik yang sama dengan yang digunakan oleh struktur ACCESS_ALLOWED_ACE. Dalam hal ini, gunakan struktur ACCESS_ALLOWED_ACE karena lebih kecil dan lebih efisien.
ACL yang berisi ACCESS_ALLOWED_OBJECT_ACE harus menentukan nomor revisi ACL_REVISION_DS di header ACL .
Hak akses yang ditentukan oleh anggota Mask diberikan kepada wali amanat yang memiliki SID yang diaktifkan yang cocok dengan SID yang disimpan di anggota SidStart.
Struktur ACCESS_ALLOWED_OBJECT_ACE dapat dibuat dalam daftar kontrol akses (ACL) dengan panggilan ke fungsi AddAccessAllowedObjectAce . Ketika fungsi ini digunakan, jumlah memori yang benar yang diperlukan untuk mengakomodasi struktur GUID dalam ObjectType dan InheritedObjectType anggota, jika salah satu atau keduanya ada, serta untuk mengakomodasi SID wali amanat dialokasikan secara otomatis. Selain itu, nilai Header.AceType dan Header.AceSize diatur secara otomatis. Saat struktur ACCESS_ALLOWED_OBJECT_ACE dibuat di luar ACL, memori yang cukup harus dialokasikan untuk mengakomodasi struktur GUID dalam ObjectType dan Anggota InheritedObjectType, jika salah satu atau keduanya ada, serta untuk mengakomodasi SID lengkap trustee di anggota SidStart dan memori yang berdekatan mengikutinya. Selain itu, nilaiHeader.AceType dan Header.AceSize anggota harus diatur secara eksplisit oleh aplikasi.