Bagikan melalui


Fungsi AddConditionalAce (winbase.h)

Fungsi AddConditionalAce menambahkan entri kontrol akses bersyarat (ACE) ke daftar kontrol akses (ACL) yang ditentukan. ACE kondisional menentukan kondisi logis yang dievaluasi selama pemeriksaan akses.

Sintaks

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

Parameter

[in, out] pAcl

Penunjuk ke ACL. Fungsi ini menambahkan ACE ke ACL ini.

Nilai parameter ini tidak boleh NULL.

[in] dwAceRevision

Menentukan tingkat revisi ACL yang sedang dimodifikasi. Nilai ini dapat ACL_REVISION atau ACL_REVISION_DS. Gunakan ACL_REVISION_DS jika ACL berisi ACE khusus objek.

[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
CONTAINER_INHERIT_ACE
ACE diwarisi oleh objek kontainer.
INHERIT_ONLY_ACE
ACE tidak berlaku untuk objek tempat ACL ditetapkan, tetapi dapat diwariskan oleh objek anak.
INHERITED_ACE
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.
NO_PROPAGATE_INHERIT_ACE
Bit OBJECT_INHERIT_ACE dan CONTAINER_INHERIT_ACE tidak disebarkan ke ACE yang diwariskan.
OBJECT_INHERIT_ACE
ACE diwarisi oleh objek nonkontainer.

[in] AceType

Jenis ACE.

Ini bisa menjadi salah satu nilai berikut.

Nilai Makna
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACE panggilan balik yang diizinkan akses yang menggunakan struktur ACCESS_ALLOWED_CALLBACK_ACE .
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACE panggilan balik yang ditolak akses yang menggunakan struktur ACCESS_DENIED_CALLBACK_ACE .
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
ACE panggilan balik audit sistem yang menggunakan struktur SYSTEM_AUDIT_CALLBACK_ACE .

[in] AccessMask

Menentukan masker hak akses yang akan diberikan kepada SID yang ditentukan.

[in] pSid

Penunjuk ke SID yang mewakili pengguna, grup, atau akun masuk yang diberikan akses.

[in] ConditionStr

String yang menentukan pernyataan kondisi yang akan dievaluasi untuk ACE.

[out] ReturnLength

Ukuran, dalam byte, dari ACL. Jika buffer yang ditentukan oleh parameter pACL tidak memiliki ukuran yang cukup, nilai parameter ini adalah ukuran yang diperlukan.

Nilai kembali

Jika fungsi berhasil, fungsi akan mengembalikan TRUE.

Jika fungsi gagal, fungsi akan mengembalikan FALSE. Untuk informasi kesalahan yang diperluas, hubungi GetLastError. Berikut ini adalah kemungkinan nilai kesalahan.

Menampilkan kode Deskripsi
ERROR_INSUFFICIENT_BUFFER
ACE baru tidak cocok dengan buffer pAcl .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Advapi32.lib
DLL Advapi32.dll