ACCESS_ALLOWED_OBJECT_ACE結構 (winnt.h)
ACCESS_ALLOWED_OBJECT_ACE 結構會定義 訪問控制專案 (ACE),控制允許存取物件、屬性集或屬性。 ACE 包含一組訪問許可權、識別物件類型的 GUID,以及識別系統將授與存取權之 信任者安全性識別碼。 ACE 也包含 GUID,以及一組旗標,可控制子物件繼承 ACE。
語法
typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
成員
Header
ACE_HEADER 結構,指定 ACE 的大小和類型。 它也包含旗標,可控制子物件繼承 ACE。 AceTypeACE_HEADER 結構的成員應設定為 ACCESS_ALLOWED_OBJECT_ACE_TYPE,且 AceSize 成員應設定為配置給 ACCESS_ALLOWED_OBJECT_ACE 結構的位元組總數。
Mask
ACCESS_MASK,指定系統將允許存取權給 信任。
Flags
一組位旗標,指出是否 ObjectType 和 InheritedObjectType 成員存在。 此參數可以是下列其中一或多個值。
ObjectType
只有當ACE_OBJECT_TYPE_PRESENT位是在 旗標 成員中設定時,這個成員才會存在。 否則,InheritedObjectType 成員緊接在 Flags 成員之後。
如果這個成員存在,它是 GUID 結構,可識別屬性集、屬性、擴充許可權或子物件的類型。 這個 GUID 的目的取決於 Mask 成員中指定的訪問許可權。
InheritedObjectType
只有在 Flags 成員中設定ACE_INHERITED_OBJECT_TYPE_PRESENT位時,這個成員才會存在。
如果這個成員存在,它是 GUID 結構,可識別可繼承 ACE 的子物件類型。 繼承也由 ACE_HEADER中的繼承旗標控制,以及不受子物件上之繼承的任何保護所控制。
此成員的位移可能會有所不同。 如果 旗標 成員不包含ACE_OBJECT_TYPE_PRESENT旗標,則 InheritedObjectType 成員會從 ObjectType 成員指定的位移開始。
SidStart
指定 SID 的第一個
此成員的位移可能會有所不同。 如果 旗標 成員為零,SidStart 成員會從 ObjectType 成員所指定的位移開始。 如果 旗標 只包含一個旗標(ACE_OBJECT_TYPE_PRESENT或ACE_INHERITED_OBJECT_TYPE_PRESENT),SidStart 成員會從 InheritedObjectType 成員指定的位移開始。
言論
如果未指定 ObjectType 或 InheritedObjectTypeGUID,則 ACCESS_ALLOWED_OBJECT_ACE 結構具有與 ACCESS_ALLOWED_ACE 結構所使用的語意相同。 在此情況下,請使用 ACCESS_ALLOWED_ACE 結構,因為它較小且更有效率。
包含 ACCESS_ALLOWED_OBJECT_ACE 的 ACL 必須在其 ACL 標頭中指定ACL_REVISION_DS修訂編號。
Mask 成員所指定的訪問許可權會授與擁有已啟用 SID 且符合儲存在 SidStart 成員中 SID 的任何 信任者。
呼叫
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
標頭 | winnt.h (包括 Windows.h) |