ACCESS_ALLOWED_CALLBACK_OBJECT_ACE 構造体 (winnt.h)

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

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

構文

typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;

メンバー

Header

ACE の サイズと種類を指定する構造体をACE_HEADERします。 また、子オブジェクトによる ACE の継承を制御するフラグも含まれています。 ACE_HEADER構造体の AceType メンバーをACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPEに設定し、AceSize メンバーをACCESS_ALLOWED_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 には、アプリケーション データを追加できます。

注釈

ObjectType GUID も InheritedObjectTypeGUID も指定されていない場合、ACCESS_ALLOWED_CALLBACK_OBJECT_ACE構造体のセマンティクスは、ACCESS_ALLOWED_CALLBACK_ACE構造体で使用されるものと同じです。 その場合は、 ACCESS_ALLOWED_CALLBACK_ACE 構造を使用します。これは、より小さく効率的であるためです。

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

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

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

要件

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

こちらもご覧ください

エース

ACL

AddAuditAccessObjectAce

GUID

SID