AddAce 関数 (securitybaseapi.h)

AddAce 関数は、指定されたアクセス制御リスト (ACL) に 1 つ以上のアクセス制御エントリ (ACE) を追加します。

構文

BOOL AddAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  dwStartingAceIndex,
  [in]      LPVOID pAceList,
  [in]      DWORD  nAceListLength
);

パラメーター

[in, out] pAcl

ACL へのポインター。 この関数は、この ACL に ACE を追加します。

[in] dwAceRevision

変更する ACL のリビジョン レベルを指定します。

この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 ACL にオブジェクト固有の ACE が含まれている場合は、ACL_REVISION_DSを使用します。 この値は、pAceList 内のすべての ACE の AceType フィールドと互換性がある必要があります。 それ以外の場合、関数は失敗し、最後のエラーをERROR_INVALID_PARAMETERに設定します。

[in] dwStartingAceIndex

新しい ACE を追加する ACL の ACE の一覧内の位置を指定します。 値が 0 の場合、リストの先頭に ACE が挿入されます。 MAXDWORD の値を指定すると、ACE がリストの末尾に追加されます。

[in] pAceList

指定した ACL に追加する 1 つ以上の ACE のリストへのポインター。 リスト内の ACE は連続して格納する必要があります。

[in] nAceListLength

pAceList パラメーターが指す入力バッファーのサイズをバイト単位で指定します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 考えられるエラー値を次に示します。

リターン コード 説明
ERROR_INSUFFICIENT_BUFFER
新しい ACE は ACL に適合しません。 より大きな ACL バッファーが必要です。
ERROR_INVALID_PARAMETER
指定された ACL が正しく形成されていません。
ERROR_SUCCESS
ACE が正常に追加されました。

注釈

アプリケーションでは、AddAce 関数を使用して ACL を操作するときに、FindFirstFreeAce 関数と GetAce 関数を頻繁に使用します。 さらに、GetAclInformation 関数によって取得されるACL_SIZE_INFORMATION構造体には、ACL のサイズと ACL に含まれる ACE の数が含まれます。

この関数を使用する例については、「 対話型クライアント プロセスの開始」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

ACL_SIZE_INFORMATION

AddAccessAllowedAce

AddAccessDeniedAce

AddAuditAccessAce

DeleteAce

FindFirstFreeAce

GetAce

GetAclInformation

低レベルのAccess Control

低レベルのAccess Control関数