共用方式為


(aclui.h) SI_OBJECT_INFO 結構

ISecurityInformation::GetObjectInformation 方法會使用SI_OBJECT_INFO結構來指定用來初始化訪問控制編輯器的資訊。

語法

typedef struct _SI_OBJECT_INFO {
  DWORD     dwFlags;
  HINSTANCE hInstance;
  LPWSTR    pszServerName;
  LPWSTR    pszObjectName;
  LPWSTR    pszPageTitle;
  GUID      guidObjectType;
} SI_OBJECT_INFO, *PSI_OBJECT_INFO;

成員

dwFlags

一組位旗標,可決定使用者可用的編輯選項。 這個成員可以是下列值的組合。

意義
SI_ADVANCED
0x00000010L
如果設定此旗標,[ 進階 ] 按鈕會顯示在 [基本安全性] 屬性頁面上。 如果使用者按下此按鈕,系統會顯示進 階安全性屬性表 ,以便進 階編輯任意訪問控制清單 , (DACL) 物件。

將此旗標與SI_EDIT_AUDITS、SI_EDIT_OWNER和SI_EDIT_PROPERTIES旗標結合,以允許編輯物件的 SACL、擁有者和物件特定 存取控制專案 , (ACE) 。

SI_AUDITS_ELEVATION_REQUIRED
0x02000000L
如果設定此旗標,則會在進階稽核頁面的 [編輯] 按鈕上顯示防護板。 若為NTFS物件,當用戶沒有 READ_CONTROLACCESS_SYSTEM_SECURITY 存取權時,就會要求此旗標。

Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_CONTAINER
0x00000004L
表示對像是容器。 如果設定此旗標,訪問控制編輯器會啟用與子對象的許可權繼承相關的控制件。
SI_DISABLE_DENY_ACE
0x80000000L
如果設定此旗標,系統會停用拒絕 ACE。 訪問控制編輯器的客戶端必須實作 ISecurityInformation4 介面,才能設定此旗標。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_EDIT_ALL
結合SI_EDIT_PERMS、SI_EDIT_OWNER和SI_EDIT_AUDITS旗標。
SI_EDIT_AUDITS
0x00000002L
如果設定此旗標,且使用者按兩下 [ 進階 ] 按鈕,系統會顯示進階安全性屬性表,其中包含用於編輯物件的 SACL 稽 核屬性頁 。 若要顯示 [ 進階 ] 按鈕,請設定SI_ADVANCED旗標。
SI_EDIT_EFFECTIVE
0x00020000L
如果設定此旗標,則會顯示 [有效許可權 ] 頁面。 如果初始化訪問控制編輯器的 ISecurityInformation 物件未實作 IEffectivePermission 介面,則會忽略此旗標。
SI_EDIT_OWNER
0x00000001L
如果設定此旗標,且使用者按兩下 [ 進階 ] 按鈕,系統會顯示進階安全性屬性表,其中包含用於變更物件擁有者的 擁有者屬性頁 。 若要顯示 [ 進階 ] 按鈕,請設定SI_ADVANCED旗標。
SI_EDIT_PERMS
0x00000000L
這是預設值。 基本安全性屬性頁一律會顯示控件,以編輯物件的 DACL。 若要停用這些控件,請設定SI_READONLY旗標。
SI_EDIT_PROPERTIES
0x00000080L
如果設定此旗標,系統會啟用控件來編輯套用至物件屬性集和屬性的 ACE。 這些控制項只有在使用者按兩下 [ 進階 ] 按鈕時,才會顯示在屬性表中。
SI_ENABLE_CENTRAL_POLICY
0x40000000L
如果設定此旗標,系統會啟用編輯屬性。 訪問控制編輯器的客戶端必須實作 ISecurityInformation4 介面,才能設定此旗標。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_ENABLE_EDIT_ATTRIBUTE_CONDITION
0x20000000L
如果設定此旗標,系統會啟用編輯屬性。 訪問控制編輯器的客戶端必須實作 ISecurityInformation4 介面,才能設定此旗標。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_MAY_WRITE
0x100000000L
表示訪問控制編輯器無法讀取 DACL,但可能能夠寫入 DACL。 如果 ISecurityInformation::GetSecurity 方法的呼叫傳回 AccessDenied,則使用者可以嘗試新增 ACE,並顯示更適當的警告。
SI_NO_ACL_PROTECT
0x00000200L
如果設定此旗標,訪問控制編輯器會隱藏複選框,讓可繼承的 ACE 從父對象傳播到這個物件。 如果未設定此旗標,則會顯示複選框。

如果對象的安全性描述項中已設定SE_DACL_PROTECTED旗標,複選框就會清除。 在此情況下,物件的 DACL 會受到保護,不受可繼承 ACE 修改。

如果使用者清除複選框,安全性描述元中的任何繼承 ACE 都會遭到刪除或轉換成非內嵌的 ACE。 繼續進行這項轉換之前,系統會顯示警告消息框以確認變更。

SI_NO_ADDITIONAL_PERMISSION
0x00200000L
如果設定此旗標,訪問控制編輯器會隱藏 [進階安全性設定] 頁面上的 [特殊許可權] 索引標籤。
SI_NO_TREE_APPLY
0x00000400L
如果設定此旗標,訪問控制編輯器會隱藏控制NO_PROPAGATE_INHERIT_ACE旗標的複選框。 只有在同時設定SI_ADVANCED旗標時,此旗標才會相關。
SI_OBJECT_GUID
0x00010000L
設定時,表示SI_OBJECT_INFO結構的 guidObjectType 成員有效。 這是在判斷 ACE 是否套用至目前物件時,與物件特定 ACE 比較所設定。
SI_OWNER_ELEVATION_REQUIRED
0x04000000L
如果設定此旗標,則會在進階擁有者頁面的 [編輯] 按鈕上顯示防護板。 若為NTFS物件,當用戶沒有 WRITE_OWNER 存取權時,會要求此旗標。 只有在要求擁有者頁面時,此旗標才有效。

Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_OWNER_READONLY
0x00000040L
如果設定此旗標,使用者就無法變更對象的擁有者。 如果已設定SI_EDIT_OWNER,但使用者沒有變更擁有者的許可權,請設定此旗標。
SI_OWNER_RECURSE
0x00000100L
將此旗標與SI_CONTAINER結合,在擁有者頁面上顯示複選框,指出使用者是否想要將新的擁有者套用至所有子物件以及目前物件。 訪問控制編輯器不會執行遞歸;遞歸應該由 ISecurityInformation::SetSecurity 中的應用程式執行。
SI_PAGE_TITLE
0x00000800L
如果設定此旗標, pszPageTitle 成員會作為基本安全性屬性頁的標題。 否則,會使用預設標題。
SI_PERMS_ELEVATION_REQUIRED
0x01000000L
如果設定此旗標,則防護板的影像會顯示在簡單和進階許可權頁面的 [編輯] 按鈕上。 若為NTFS物件,當用戶沒有 READ_CONTROLWRITE_DAC 存取權時,就會要求此旗標。

Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_READONLY
0x00000008L
如果設定此旗標,編輯器會顯示物件的安全性資訊,但編輯資訊的控件會停用。

此旗標無法與 SI_VIEW_ONLY 旗標結合。

SI_RESET
0x00000020L
如果設定此旗標,則會顯示 [預設] 按鈕。 如果使用者按下此按鈕,訪問控制編輯器會呼叫 ISecurityInformation::GetSecurity 方法來擷取應用程式定義的預設安全性描述元。 訪問控制編輯器會使用此安全性描述元來重新初始化屬性表,而且允許使用者套用變更或取消。
SI_RESET_DACL
0x00040000L
設定時,此旗標會顯示 [許可權] 頁面上的 [重設預設值] 按鈕。
SI_RESET_DACL_TREE
0x00004000L
設定時,此旗標會顯示所有子物件的 [重設許可權],並在 [存取控制 設定] 視窗的 [許可權] 頁面中啟用可繼承許可權的傳播複選框。 如果使用者按兩下 [套用] 按鈕時選取此複選框,則會在具有 SI_RESET_DACL_TREE 的 ISecurityInformation::SetSecurity的 SecurityInformation 參數上執行位 OR 作業。 此函式不會重設許可權,並啟用可繼承許可權的傳播; ISecurityInformation 的實作必須這樣做。
SI_RESET_OWNER
0x00100000L
設定時,此旗標會顯示 [擁有者] 頁面上的 [重設預設值] 按鈕。
SI_RESET_SACL
0x00080000L
設定時,此旗標會顯示 [稽核] 頁面上的 [重設預設值] 按鈕。
SI_RESET_SACL_TREE
0x00008000L
設定時,此旗標會在所有子對象上顯示 [重設稽核專案],並在 [存取控制 設定] 視窗的 [稽核] 頁面中啟用可繼承的稽核專案傳播複選框。 如果使用者按兩下 [套用] 按鈕時選取此複選框,則會在具有SI_RESET_SACL_TREE的 ISecurityInformation::SetSecurity的 SecurityInformation 參數上執行位 OR 作業。 此函式不會重設許可權,並啟用可繼承許可權的傳播; ISecurityInformation 的實作必須這樣做。
SI_SCOPE_ELEVATION_REQUIRED
0x08000000L
如果設定此旗標,則會在 [範圍] 屬性的 [ 變更 ] 按鈕上顯示防護板的影像。 若為NTFS對象,當用戶沒有READ_CONTROL或WRITE_DAC存取權時,就會要求此旗標。 訪問控制編輯器的客戶端必須實作 ISecurityInformation4 介面,才能設定此旗標。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此旗標。

SI_SERVER_IS_DC
0x00001000L
如果 pszServerName 計算機已知為域控制器,請設定此旗標。 如果設定此旗標,功能變數名稱就會包含在 [ 新增使用者和群組 ] 對話框的範圍清單中。 否則, pszServerName 計算機會用來判斷對話框的範圍清單。
SI_VIEW_ONLY
0x00400000L
此旗標是由訪問控制編輯器用戶端設定,以顯示訪問控制編輯器對話框的唯讀版本。 這些版本的對話框不允許編輯相關聯對象的許可權。 訪問控制編輯器的客戶端必須實作 ISecurityInformation3 介面來設定此旗標。

此旗標無法與 SI_READONLY 旗標結合。

Windows Server 2003 和 Windows XP: 不支援此旗標。

hInstance

識別模組,其中包含要用於屬性表的字串資源。 ISecurityInformation::GetAccessRightsISecurityInformation::GetInheritTypes 方法可以指定顯示名稱的字串資源標識符。

pszServerName

以 Null 結尾的 Unicode 字串指標,用來命名要在其中查閱帳戶名稱和 SID 的電腦。 這個值可以是 NULL ,以指定本機電腦。 訪問控制編輯器不會釋放此指標。

pszObjectName

以 Null 結尾的 Unicode 字串指標,用來命名要編輯的物件。 此名稱會出現在進階安全性屬性表的標題,以及訪問控制編輯器所顯示的任何錯誤消息框。 訪問控制編輯器不會釋放此指標。

pszPageTitle

以 Null 終止的 Unicode 字串指標,用來作為基本安全性屬性頁的標題。 除非 在 dwFlags 中設定SI_PAGE_TITLE旗標,否則會忽略此成員。 如果未提供頁面標題,則會使用預設標題。 訪問控制編輯器不會釋放此指標。

guidObjectType

物件的 GUID。 除非 在 dwFlags 中設定SI_OBJECT_GUID旗標,否則會忽略此成員。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
標頭 aclui.h

另請參閱

ISecurityInformation

ISecurityInformation::GetAccessRights

ISecurityInformation::GetInheritTypes

ISecurityInformation::GetObjectInformation

ISecurityInformation::GetSecurity

ISecurityInformation::SetSecurity