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 つ以上の値を指定できます。
ObjectType
このメンバーは、ACE_OBJECT_TYPE_PRESENT ビットが Flags メンバーに設定されている場合にのみ存在します。 それ以外の場合、 InheritedObjectType メンバーは Flags メンバーの直後に続きます。
このメンバーが存在する場合は、子オブジェクトのプロパティ セット、プロパティ、拡張権限、または型を識別する GUID 構造体です。 この GUID の目的は、 Mask メンバーで指定されたアクセス権によって異なります。
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 メンバーによって指定されたオフセットから開始されます。
解説
ObjectType と InheritedObjectTypeGUID のどちらも指定されていない場合、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 メンバーと InheritedObjectType メンバーの GUID 構造体に対応するために必要なメモリの量 (いずれかまたは両方が存在する場合) と、トラスティの SID に対応するために必要なメモリが自動的に割り当てられます。 また、 Header.AceType メンバーと Header.AceSize メンバーの値は自動的に設定されます。 ACCESS_DENIED_OBJECT_ACE構造体が ACL の外部で作成される場合、ObjectType メンバーと InheritedObjectType メンバーの GUID 構造体に対応するために十分なメモリを割り当てる必要があります(その両方が存在する場合)。また、SidStart メンバー内のトラスティの完全な SID とそれに続く連続したメモリに対応する必要があります。 さらに、 Header.AceType メンバーと Header.AceSize メンバーの値は、アプリケーションによって明示的に設定する必要があります。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | winnt.h (Windows.h を含む) |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示