SECURITY_DESCRIPTOR_CONTROL

SECURITY_DESCRIPTOR_CONTROL データ型は、セキュリティ記述子またはそのコンポーネントの意味を修飾するビット フラグのセットです。 各セキュリティ記述子には、SECURITY_DESCRIPTOR_CONTROL ビットを格納する Control メンバーがあります。

typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

注釈

セキュリティ記述子の制御ビットを取得するには、 GetSecurityDescriptorControl 関数を呼び出します。 セキュリティ記述子の制御ビットを設定するには、 関数を使用してセキュリティ記述子を変更します。 これらの関数の一覧については、「関連項目」セクションを参照してください。

アプリケーションでは 、SetSecurityDescriptorControl 関数を使用して、ACE の自動継承に関連する制御ビットを設定できます。

GetSecurityDescriptorControl 関数によって取得されるコントロール値には、次のSECURITY_DESCRIPTOR_CONTROL ビット フラグの組み合わせを含めることができます。

説明
SE_DACL_AUTO_INHERIT_REQ
0x0100
継承可能なアクセス制御エントリ (ACE) を既存の子オブジェクトに自動的に伝達できるように、随意アクセス制御リスト (DACL) が設定されている必要なセキュリティ記述子を示します。
自動継承をサポートする アクセス制御リスト (ACL) の場合、このビットは常に設定されます。 保護されたサーバーは 、ConvertToAutoInheritPrivateObjectSecurity 関数を呼び出して、セキュリティ記述子を変換し、このフラグを設定できます。
SE_DACL_AUTO_INHERITED
0x0400
既存の子オブジェクトへの継承可能なアクセス制御エントリ (ACE) の自動伝達をサポートするように随意アクセス制御リスト (DACL) が設定されているセキュリティ記述子を示します。
自動継承をサポートする アクセス制御リスト (ACL) の場合、このビットは常に設定されます。 保護されたサーバーは 、ConvertToAutoInheritPrivateObjectSecurity 関数を呼び出して、セキュリティ記述子を変換し、このフラグを設定できます。
SE_DACL_DEFAULTED
0x0008
既定の DACL を持つセキュリティ記述子を示します。 たとえば、オブジェクトが DACL を指定していない作成者の場合、オブジェクトは作成者の アクセス トークン から既定の DACL を受け取ります。 このフラグは、システムが ACE 継承に関して DACL を処理する方法に影響を与える可能性があります。 このフラグは、SE_DACL_PRESENT フラグが設定されていない場合はシステムで無視されます。
このフラグは、オブジェクトの最終的な DACL の計算方法を決定するために使用され、セキュリティ保護可能なオブジェクトのセキュリティ記述子の制御に物理的に格納されません。
このフラグを設定するには、 SetSecurityDescriptorDacl 関数を使用します。
SE_DACL_PRESENT
0x0004
DACL を持つセキュリティ記述子を示します。 このフラグが設定されていない場合、またはこのフラグが設定されていて DACL が NULL の場合、セキュリティ記述子は全員にフル アクセスを許可します。
このフラグは、セキュリティ記述子がセキュリティ保護可能なオブジェクトに関連付けられるまで、呼び出し元によって指定されたセキュリティ情報を保持するために使用されます。 セキュリティ記述子がセキュリティ保護可能なオブジェクトに関連付けられた後、SE_DACL_PRESENT フラグは常にセキュリティ記述子コントロールに設定されます。
このフラグを設定するには、 SetSecurityDescriptorDacl 関数を使用します。
SE_DACL_PROTECTED
0x1000
セキュリティ記述子の DACL が継承可能な ACE によって変更されないようにします。 このフラグを設定するには、 SetSecurityDescriptorControl 関数を 使用します。
SE_GROUP_DEFAULTED
0x0002
セキュリティ記述子グループの セキュリティ識別子 (SID) が既定のメカニズムによって提供されたことを示します。 このフラグは、リソース・マネージャーが、セキュリティー記述子グループがデフォルト・メカニズムによって設定されたオブジェクトを識別するために使用できます。 このフラグを設定するには、 SetSecurityDescriptorGroup 関数を 使用します。
SE_OWNER_DEFAULTED
0x0001
セキュリティ記述子の所有者の SID が既定のメカニズムによって提供されたことを示します。 このフラグは、リソース マネージャーが既定のメカニズムによって所有者が設定されたオブジェクトを識別するために使用できます。 このフラグを設定するには、 SetSecurityDescriptorOwner 関数を使用します。
SE_RM_CONTROL_VALID
0x4000
リソース マネージャー コントロールが有効であることを示します。
SE_SACL_AUTO_INHERIT_REQ
0x0200
既存の子オブジェクトへの継承可能 ACE の自動伝達をサポートするために 、システム アクセス制御リスト (SACL) が設定されている必要なセキュリティ記述子を示します。
システムでは、オブジェクトとその既存の子オブジェクトに対して自動継承アルゴリズムを実行するときに、このビットが設定されます。 セキュリティ記述子を変換してこのフラグを設定するために、保護されたサーバーは ConvertToAutoInheritPrivateObjectSecurity 関数を呼び出すことができます。
SE_SACL_AUTO_INHERITED
0x0800
既存の子オブジェクトへの継承可能 ACE の自動伝達をサポートするように システム アクセス制御リスト (SACL) が設定されているセキュリティ記述子を示します。
システムでは、オブジェクトとその既存の子オブジェクトに対して自動継承アルゴリズムを実行するときに、このビットが設定されます。 セキュリティ記述子を変換してこのフラグを設定するために、保護されたサーバーは ConvertToAutoInheritPrivateObjectSecurity 関数を呼び出すことができます。
SE_SACL_DEFAULTED
0x0008
SACL は、セキュリティ記述子の元の プロバイダー ではなく、既定のメカニズムです。 このフラグは、ACE 継承に関して、システムが SACL を処理する方法に影響を与える可能性があります。 このフラグは、SE_SACL_PRESENT フラグが設定されていない場合はシステムで無視されます。 このフラグを設定するには、 SetSecurityDescriptorSacl 関数を使用します。
SE_SACL_PRESENT
0x0010
SACL を持つセキュリティ記述子を示します。 このフラグを設定するには、 SetSecurityDescriptorSacl 関数を使用します。
SE_SACL_PROTECTED
0x2000
セキュリティ記述子の SACL が継承可能な ACE によって変更されないようにします。 このフラグを設定するには、 SetSecurityDescriptorControl 関数を 使用します。
SE_SELF_RELATIVE
0x8000
自己相対セキュリティ記述子を示します。 このフラグが設定されていない場合、セキュリティ記述子は絶対形式になります。 詳細については、「絶対および自己相対セキュリティ記述子」を参照してください。

要件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
Header
Winnt.h (Windows.h を含む)

関連項目

低レベルのAccess Control

基本的なAccess Control構造

ConvertToAutoInheritPrivateObjectSecurity

GetSecurityDescriptorControl

GetSecurityDescriptorDacl

GetSecurityDescriptorGroup

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

SetSecurityDescriptorControl

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner

SetSecurityDescriptorSacl