ACCESS_ALLOWED_OBJECT_ACE結構 (winnt.h)
ACCESS_ALLOWED_OBJECT_ACE結構會定義訪問控制專案 (ACE) ,控制允許存取物件、屬性集或屬性。 ACE 包含一組訪問許可權、識別物件類型的 GUID,以及識別系統將授與存取權之信任項的安全性標識碼 (SID) 。 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 繼承。 ACE_HEADER 結構的 AceType 成員應設定為 ACCESS_ALLOWED_OBJECT_ACE_TYPE,而 AceSize 成員應設定為配置給ACCESS_ALLOWED_OBJECT_ACE 結構的位元組總數。
Mask
ACCESS_MASK,指定系統將允許給信任項的訪問許可權。
Flags
一組位旗標,指出 ObjectType 和 InheritedObjectType 成員是否存在。 此參數可以是下列一或多個值。
ObjectType
只有在 Flags 成員中設定ACE_OBJECT_TYPE_PRESENT位時,才會存在這個成員。 否則, InheritedObjectType 成員會緊接在 Flags 成員之後。
如果這個成員存在,它是 GUID 結構,可識別屬性集、屬性、擴充許可權或子物件的類型。 此 GUID 的用途取決於 Mask 成員中指定的訪問許可權。
InheritedObjectType
只有在 Flags 成員中設定ACE_INHERITED_OBJECT_TYPE_PRESENT位時,才會存在這個成員。
如果這個成員存在,它是 GUID 結構,可識別可繼承 ACE 的子物件類型。 繼承也是由 ACE_HEADER中的繼承旗標所控制,以及對子物件上所放置之繼承的任何保護。
此成員的位移可能會有所不同。 如果 Flags 成員不包含ACE_OBJECT_TYPE_PRESENT旗標, 則 InheritedObjectType 成員會從 ObjectType 成員指定的位移開始。
SidStart
指定 SID 的第一個 DWORD ,識別授與訪問許可權 的信任者 。 SID 的剩餘位元組會儲存在 SidStart 成員之後的連續記憶體中。 此 SID 可以附加應用程式資料。
此成員的位移可能會有所不同。 如果 Flags 成員為零, SidStart 成員會從 ObjectType 成員指定的位移開始。 如果 Flags 只包含一個旗標 (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 的信任者。
您可以透過呼叫 AddAccessAllowedObjectAce 函式,在訪問控制清單中建立 (ACL) 結構。 ACCESS_ALLOWED_OBJECT_ACE 使用此函式時,如果 ObjectType 和 InheritedObjectType 成員中有一個或兩者存在,以及自動配置信任者的 SID,則容納 GUID 結構所需的正確記憶體數量。 此外, 會自動設定 Header.AceType 和 Header.AceSize 成員的值。 在 ACL 外部建立 ACCESS_ALLOWED_OBJECT_ACE 結構時,必須配置足夠的記憶體,以容納 ObjectType 和 InheritedObjectType 成員中的 GUID 結構,如果有其中一個或兩者存在,以及容納 SidStart 成員中信任項的完整 SID,以及後續的連續記憶體。 此外,應用程式必須明確設定 Header.AceType 和 Header.AceSize 成員的值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | winnt.h (包含 Windows.h) |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應