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 を呼び出します。 考えられるエラー値を次に示します。
リターン コード | 説明 |
---|---|
|
新しい ACE は ACL に適合しません。 より大きな ACL バッファーが必要です。 |
|
指定された ACL が正しく形成されていません。 |
|
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 |