SYSTEM_AUDIT_OBJECT_ACE構造体 (winnt.h)

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

構文

typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
  ACE_HEADER  Header;
  ACCESS_MASK Mask;
  DWORD       Flags;
  GUID        ObjectType;
  GUID        InheritedObjectType;
  DWORD       SidStart;
} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;

メンバー

Header

ACE サイズと型を指定するACE_HEADER構造体。 これには、子オブジェクトによる ACE の継承を制御するフラグが含まれています。 構造体には、ACE がアクセス試行の成功、アクセス試行の失敗、またはその両方を監査するかどうかを示すフラグも含まれています。 ACE_HEADER構造体の AceType メンバーをSYSTEM_AUDIT_OBJECT_ACE_TYPEに設定し、AceSize メンバーをSYSTEM_AUDIT_OBJECT_ACE構造体に割り当てられたバイトの合計数に設定する必要があります。

Mask

トラスティによるアクセス試行についてシステムが監査するアクセス権を指定するACCESS_MASK。

Flags

ObjectType メンバーと InheritedObjectType メンバーに GUID が含まれているかどうかを示すビット フラグのセット。 このメンバーは、次の値の組み合わせにすることができます。 未定義のすべてのビットを 0 に設定します。

意味
ACE_OBJECT_TYPE_PRESENT
ObjectType メンバーには GUID が含まれています。
ACE_INHERITED_OBJECT_TYPE_PRESENT
InheritedObjectType メンバーには GUID が含まれています。

ObjectType

子オブジェクトのプロパティ セット、プロパティ、拡張権限、または型を識別する GUID 構造体。

このメンバーは、ACE_OBJECT_TYPE_PRESENT ビットが Flags メンバーに設定されている場合にのみ有効です。 それ以外の場合、 ObjectType は無視されます。

この GUID の目的は、 Mask メンバーで指定されたアクセス権によって異なります。

このメンバーには、次のいずれかの値を指定できます。

意味
ADS_RIGHT_DS_READ_PROPやADS_RIGHT_DS_WRITE_PROP
ObjectType GUID は、オブジェクトのプロパティ セットまたはプロパティを識別します。 ACE は、プロパティまたはプロパティ セットの読み取りまたは書き込みのトラスティの試行の監査を制御します。
ADS_RIGHT_DS_CONTROL_ACCESS
ObjectType GUID は、拡張アクセス権を識別します。
ADS_RIGHT_DS_CREATE_CHILD
ObjectType GUID は、子オブジェクトの種類を識別します。 ACE は、この種類の子オブジェクトを作成するトラスティの試行の監査を制御します。
ADS_RIGHT_DS_SELF
ObjectType GUID は、検証された書き込みを識別します。

InheritedObjectType

ACE を継承できる子オブジェクトの種類を識別する GUID 構造体。

このメンバーは、ACE_INHERITED_OBJECT_TYPE_PRESENT ビットが Flags メンバーに設定されている場合にのみ有効です。 そのビットが設定されていない場合、 InheritedObjectType は無視され、すべての種類の子オブジェクトは ACE を継承できます。 どちらの場合も、継承は、 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 メンバーによって指定されたオフセットから開始されます。

注釈

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

SYSTEM_AUDIT_OBJECT_ACEを含む ACL では、 ACE_HEADER 構造でACL_REVISION_DSリビジョン番号 を指定する 必要があります。

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

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

要件

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

こちらもご覧ください

ACL

AddAuditAccessObjectAce

GUID

SID