Bagikan melalui


struktur ACCESS_ALLOWED_OBJECT_ACE (winnt.h)

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 yang akan diberikan akses oleh sistem. ACE juga berisi GUID dan sekumpulan bendera yang mengontrol pewarisan ACE oleh objek anak.

Sintaks

typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;

Anggota

Header

ACE_HEADER struktur yang menentukan ukuran dan jenis ACE. Ini juga berisi bendera yang mengontrol pewarisan ACE oleh objek anak. Anggota AceType dari 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 kepada wali.

Flags

Sekumpulan bendera bit yang menunjukkan apakah anggota ObjectType dan InheritedObjectType ada. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
0
ObjectType maupun InheritedObjectType tidak ada. Anggota SidStart mengikuti segera setelah anggota Bendera .
ACE_OBJECT_TYPE_PRESENT
ObjectType ada dan berisi GUID.

Jika nilai ini tidak ditentukan, anggota InheritedObjectType segera mengikuti setelah anggota Bendera .

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType ada dan berisi GUID.

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, anggota InheritedObjectType segera mengikuti setelah anggota Bendera .

Jika anggota ini ada, ini adalah struktur GUID yang mengidentifikasi kumpulan properti, properti, hak diperluas, atau jenis objek anak. Tujuan GUID ini tergantung pada hak akses yang ditentukan dalam anggota Mask .

Nilai Makna
ADS_RIGHT_DS_CONTROL_ACCESS
GUIDObjectType mengidentifikasi hak akses yang diperluas.
ADS_RIGHT_DS_CREATE_CHILD
GUIDObjectType mengidentifikasi jenis objek anak. ACE mengontrol hak wali untuk membuat tipe objek anak ini.
ADS_RIGHT_DS_READ_PROP
GUID ObjectType mengidentifikasi kumpulan properti atau properti objek. ACE mengontrol hak wali untuk membaca properti atau set properti.
ADS_RIGHT_DS_WRITE_PROP
GUID ObjectType mengidentifikasi kumpulan properti atau properti objek. ACE mengontrol hak wali untuk menulis properti atau set properti.
ADS_RIGHT_DS_SELF
GUID ObjectType mengidentifikasi tulisan yang divalidasi.

InheritedObjectType

Anggota ini hanya ada jika bit ACE_INHERITED_OBJECT_TYPE_PRESENT diatur dalam anggota Bendera .

Jika anggota ini ada, itu adalah struktur GUID yang mengidentifikasi jenis objek anak yang dapat mewarisi ACE. Pewarisan juga dikendalikan oleh bendera pewarisan dalam ACE_HEADER, serta oleh perlindungan terhadap pewarisan yang ditempatkan pada objek anak.

Offset anggota ini dapat bervariasi. Jika anggota Bendera tidak berisi bendera ACE_OBJECT_TYPE_PRESENT, anggota InheritedObjectType dimulai dari offset yang ditentukan oleh anggota ObjectType .

SidStart

Menentukan DWORD pertama dari SID yang mengidentifikasi perwalian 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 .

Keterangan

Jika GuIDObjectType atau InheritedObjectType tidak 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-nya .

Hak akses yang ditentukan oleh anggota Mask diberikan kepada setiap wali 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 di anggota ObjectType dan InheritedObjectType , jika salah satu atau keduanya ada, serta untuk mengakomodasi SID wali amanat dialokasikan secara otomatis. Selain itu, nilai anggota Header.AceType dan Header.AceSize diatur secara otomatis. Ketika struktur ACCESS_ALLOWED_OBJECT_ACE dibuat di luar ACL, memori yang cukup harus dialokasikan untuk mengakomodasi struktur GUID di anggota ObjectType dan InheritedObjectType , jika salah satu atau keduanya ada, serta untuk mengakomodasi SID lengkap wali amanat di anggota SidStart dan memori yang berdekatan setelahnya. Selain itu, nilai anggota Header.AceType dan Header.AceSize harus diatur secara eksplisit oleh aplikasi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winnt.h (sertakan Windows.h)

Lihat juga

ACE

ACL

AddAccessAllowedObjectAce

GUID

SID