AddMandatoryAce 関数 (securitybaseapi.h)

AddMandatoryAce 関数は、指定されたシステム アクセス制御リスト (SACL) にSYSTEM_MANDATORY_LABEL_ACEアクセス制御エントリ (ACE) を追加します。

構文

BOOL AddMandatoryAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD MandatoryPolicy,
  [in]      PSID  pLabelSid
);

パラメーター

[in, out] pAcl

SACL へのポインター。 この関数は、この SACL の末尾に必須の ACE を追加します。 ACE は、 SYSTEM_MANDATORY_LABEL_ACE 構造の形式です。

[in] dwAceRevision

変更する SACL のリビジョン レベル。 この値には、次のいずれかの値を指定できます。

意味
ACL_REVISION
SACL には、オブジェクト固有の ACE は含まれません。
ACL_REVISION_DS
SACL には、オブジェクト指定の ACE が含まれています。

[in] AceFlags

ACE 継承を制御するビット フラグのセット。 この関数は、新しい ACE のACE_HEADER構造体の AceFlags メンバーにこれらのフラグを設定します。

このパラメーターは、次の値と組み合わせて使用できます。

意味
OBJECT_INHERIT_ACE
0x1
ACE は、非コンテナー オブジェクトによって継承されます。
CONTAINER_INHERIT_ACE
0x2
ACE はコンテナー オブジェクトによって継承されます。
NO_PROPAGATE_INHERIT_ACE
0x4
OBJECT_INHERIT_ACEビットとCONTAINER_INHERIT_ACE ビットは、継承された ACE に反映されません。
INHERIT_ONLY_ACE
0x8
ACE は SACL が割り当てられているオブジェクトには適用されませんが、ACE は子オブジェクトによって継承できます。
INHERITED_ACE
0x10
ACE は継承されます。 オブジェクトのツリーのセキュリティを変更する操作では、オブジェクトに直接適用された ACE を変更せずに、継承された ACE を変更できます。

[in] MandatoryPolicy

この ACE を含む SACL に関連付けられているオブジェクトよりも低い必須の整合性レベルを持つプリンシパルのアクセス ポリシー。

意味
SYSTEM_MANDATORY_LABEL_NO_WRITE_UP
0x1
オブジェクトよりも低い必須レベルのプリンシパルは、オブジェクトに書き込めません。
SYSTEM_MANDATORY_LABEL_NO_READ_UP
0x2
オブジェクトよりも低い必須レベルを持つプリンシパルは、オブジェクトを読み取ることができません。
SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP
0x4
オブジェクトよりも低い必須レベルを持つプリンシパルは、オブジェクトを実行できません。

[in] pLabelSid

追加する SACL に関連付けられているオブジェクトの必須の整合性レベルを指定する SID へのポインター。

戻り値

関数が成功すると、 TRUE が返されます。

関数が失敗すると、 FALSE が返されます。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー値を次に示します。

リターン コード/値 Description
ERROR_ALLOTTED_SPACE_EXCEEDED
0x540
新しい ACE は pAcl バッファーに収まりません。

注釈

この関数を使用するアプリケーションをコンパイルするには、0x0600 以降として_WIN32_WINNTを定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

要件

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

こちらもご覧ください

SYSTEM_MANDATORY_LABEL_ACE