ACCESS_DENIED_CALLBACK_OBJECT_ACE構造体 (winnt.h)

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

AuthzAccessCheck 関数が呼び出されると、AuthzAccessCheck 関数へのポインターを介して渡されたSECURITY_DESCRIPTOR構造体の DACL に含まれる各ACCESS_DENIED_CALLBACK_OBJECT_ACE構造体は、アプリケーション定義の AuthzAccessCheckCallback 関数の呼び出しを呼び出します。この関数では、見つかったACCESS_DENIED_CALLBACK_OBJECT_ACE構造体へのポインターが pAce パラメーターに渡されます。

構文

typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE;

メンバー

Header

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

Mask

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

Flags

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

意味
0
ObjectTypeInheritedObjectType も存在しません。 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 は、アプリケーション データと共に追加できます。

注釈

ObjectTypeInheritedObjectTypeGUID のどちらも指定しない場合、ACCESS_DENIED_CALLBACK_OBJECT_ACE構造体のセマンティクスは、ACCESS_DENIED_CALLBACK_ACE構造体で使用されるものと同じです。 その場合は、 ACCESS_DENIED_CALLBACK_ACE 構造を使用します。これは、より小さく効率的であるためです。

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

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

ACCESS_DENIED_CALLBACK_OBJECT_ACE構造体が作成されると、ObjectType メンバーと InheritedObjectType メンバーの GUID 構造体 (いずれかまたは両方が存在する場合) に対応するために十分なメモリを割り当てる必要があります。また、SidStart メンバー内のトラスティの完全な SID とそれに続く連続したメモリに対応する必要があります。

要件

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

こちらもご覧ください

エース

ACL

AddAuditAccessObjectAce

GUID

SID