低レベル ACL と ACE 関数
低レベル関数を使用して アクセス制御リスト (ACL) を作成するには、ACL のバッファーを割り当て、 InitializeAcl 関数を呼び出して初期化します。 随意アクセス制御リスト (DACL) の末尾にアクセス制御エントリ (ACE) を追加するには、AddAccessAllowedAce 関数と AddAccessDeniedAce 関数を使用します。 AddAuditAccessAce 関数は、システム アクセス制御リスト (SACL) の末尾に ACE を追加します。 AddAce 関数を使用すると、ACL 内の指定した位置に 1 つ以上の ACE を追加できます。 AddAce 関数を使用すると、継承可能な ACE を ACL に追加することもできます。 DeleteAce 関数は、ACL 内の指定した位置から ACE を削除します。 GetAce 関数は、ACL 内の指定した位置から ACE を取得します。 FindFirstFreeAce 関数は、ACL 内の最初のフリー バイトへのポインターを取得します。
オブジェクトの セキュリティ記述子の既存の ACL を変更するには、 GetSecurityDescriptorDacl または GetSecurityDescriptorSacl 関数を使用して既存の ACL を取得します。 GetAce 関数を使用して、既存の ACL から ACE をコピーできます。 新しい ACL を割り当て、初期化 したら、AddAccessAllowedAce や AddAce などの関数を使用して ACE を追加します。 新しい ACL の構築が完了したら、 SetSecurityDescriptorDacl または SetSecurityDescriptorSacl 関数を使用して、オブジェクトのセキュリティ記述子に新しい ACL を追加します。
AddAccessAllowedObjectAce、AddAccessDeniedObjectAce、または AddAuditAccessObjectAce 関数を使用して、ACL の末尾にオブジェクト固有の ACE を追加できます。