ACCESS_DENIED_OBJECT_ACE構造体 (winnt.h)

ACCESS_DENIED_OBJECT_ACE 構造体は、オブジェクト、プロパティ セット、またはプロパティへの拒否されたアクセスを制御する アクセス制御エントリ (ACE) を定義します。 ACE には、アクセス権のセット、オブジェクトの種類を識別する GUID、およびシステムがアクセスを拒否する トラスティ を識別する セキュリティ識別子 (SID) が含まれています。 ACE には、GUID と、子オブジェクトによる ACE の継承を制御するフラグのセットも含まれています。

構文

typedef struct _ACCESS_DENIED_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;

メンバーズ

Header

ACE_HEADER ACE のサイズと種類を指定する構造体です。 これには、子オブジェクトによる ACE の継承を制御するフラグが含まれています。 ACE_HEADER 構造体の AceType メンバーを ACCESS_DENIED_OBJECT_ACE_TYPE に設定し、AceSize メンバーを、ACCESS_DENIED_OBJECT_ACE 構造体に割り当てられた合計バイト数に設定する必要があります。

Mask

システムが トラスティに対して拒否するアクセス権を指定する ACCESS_MASK

Flags

ObjectType メンバーと InheritedObjectType メンバーが存在するかどうかを示すビット フラグのセット。 このパラメーターには、次の値のうち 1 つ以上を指定できます。

価値 意味
0
ObjectType InheritedObjectType は存在しません。 SidStart メンバーは、Flags メンバーの直後に続きます。
ACE_OBJECT_TYPE_PRESENT
ObjectType が存在し、GUIDが含まれています。

この値を指定しない場合、InheritedObjectType メンバーは、Flags メンバーの直後に続きます。

ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType が存在し、GUIDが含まれています。

この値を指定しない場合、すべての種類の子オブジェクトが ACE を継承できます。

ObjectType

このメンバーは、ACE_OBJECT_TYPE_PRESENT ビットが Flags メンバーに設定されている場合にのみ存在します。 それ以外の場合、InheritedObjectType メンバーは、Flags メンバーの直後に続きます。

このメンバーが存在する場合は、子オブジェクトのプロパティ セット、プロパティ、拡張権限、または型を識別する GUID 構造体です。 この GUID の目的は、Mask メンバーで指定されたアクセス権によって異なります。

価値 意味
ADS_RIGHT_DS_CONTROL_ACCESS
ObjectTypeGUID は、拡張アクセス権を識別します。
ADS_RIGHT_DS_CREATE_CHILD
ObjectTypeGUID は、子オブジェクトの種類を識別します。 ACE は、この種類の子オブジェクトを作成するトラスティの権利を制御します。
ADS_RIGHT_DS_READ_PROP
ObjectTypeGUID は、オブジェクトのプロパティ セットまたはプロパティを識別します。 ACE は、プロパティまたはプロパティ セットを読み取るトラスティの権利を制御します。
ADS_RIGHT_DS_WRITE_PROP
ObjectTypeGUID は、オブジェクトのプロパティ セットまたはプロパティを識別します。 ACE は、プロパティまたはプロパティ セットを書き込むトラスティの権利を制御します。
ADS_RIGHT_DS_SELF
ObjectTypeGUID は、検証済みの書き込みを識別します。

InheritedObjectType

このメンバーは、ACE_INHERITED_OBJECT_TYPE_PRESENT ビットが Flags メンバーに設定されている場合にのみ存在します。

このメンバーが存在する場合は、ACE を継承できる子オブジェクトの型を識別する GUID 構造体です。 継承は、ACE_HEADERの継承フラグと、子オブジェクトに配置された継承に対する保護によっても制御されます。

このメンバーのオフセットは異なる場合があります。 Flags メンバーにACE_OBJECT_TYPE_PRESENT フラグが含まれていない場合、InheritedObjectType メンバーは、ObjectType メンバーによって指定されたオフセットから開始されます。

SidStart

アクセス権が拒否される トラスティ を識別する SID の最初の DWORD を指定します。 SID の残りのバイトは、SidStart メンバーの後に連続したメモリに格納されます。 この SID には、アプリケーション データを追加できます。

このメンバーのオフセットは異なる場合があります。 Flags メンバーが 0 の場合、SidStart メンバーは、ObjectType メンバーで指定されたオフセットから開始されます。 Flags に 1 つのフラグ (ACE_OBJECT_TYPE_PRESENT または ACE_INHERITED_OBJECT_TYPE_PRESENT) のみが含まれている場合、SidStart メンバーは、InheritedObjectType メンバーで指定されたオフセットから開始されます。

備考

ObjectTypeInheritedObjectTypeGUID が指定されていない場合、ACCESS_DENIED_OBJECT_ACE 構造体は、ACCESS_DENIED_ACE 構造体で使用されるものと同じセマンティクスを持ちます。 その場合は、ACCESS_DENIED_ACE 構造が小さく効率的であるため使用します。

ACCESS_DENIED_OBJECT_ACE を含む ACL では、ACL ヘッダーにACL_REVISION_DSリビジョン番号を指定する必要があります。

Mask メンバーによって指定されたアクセス権は、SidStart メンバーに格納されている SID と一致する有効な SID を所有する トラスティ に対して拒否されます。

ACCESS_DENIED_OBJECT_ACE 構造体は、AddAccessDeniedObjectAce 関数の呼び出しによって、アクセス制御リスト (ACL) に作成できます。 この関数を使用すると、ObjectType 内の GUID 構造体に対応するために必要な適切なメモリ量と、メンバー InheritedObjectType メンバーの一方または両方が存在する場合、およびトラスティの SID に対応するために必要なメモリが自動的に割り当てられます。 さらに、Header.AceType メンバーと Header.AceSize メンバーの値が自動的に設定されます。 ACCESS_DENIED_OBJECT_ACE 構造体が ACL の外部で作成される場合は、ObjectType 内の GUID 構造体と InheritedObjectType メンバーの両方が存在する場合に十分なメモリを割り当てる必要があります。また、一方または両方が存在する場合は、SidStart メンバー内のトラスティの完全な SID とその後の連続したメモリを格納する必要があります。 さらに、Header.AceType メンバーと Header.AceSize メンバーの値は、アプリケーションで明示的に設定する必要があります。

必要条件

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

関連項目

ACE

ACL

AddAccessAllowedObjectAce の

GUID

SID の