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.
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 .
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk