GetSecurityDescriptorDacl 函式 (securitybaseapi.h)

GetSecurityDescriptorDacl 函式會擷取指定之安全性描述元任意訪問控制清單的指標 (DACL) 。

語法

BOOL GetSecurityDescriptorDacl(
  [in]  PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [out] LPBOOL               lpbDaclPresent,
  [out] PACL                 *pDacl,
  [out] LPBOOL               lpbDaclDefaulted
);

參數

[in] pSecurityDescriptor

包含 DACL 之 SECURITY_DESCRIPTOR 結構的指標。 函式會擷取其指標。

[out] lpbDaclPresent

值的指標,指出指定之安全性描述元中是否有 DACL。 如果 lpbDaclPresentTRUE,則安全性描述元包含 DACL,而此函式中的其餘輸出參數會收到有效值。 如果 lpbDaclPresentFALSE,則安全性描述項不包含 DACL,而其餘的輸出參數則不會接收有效的值。

lpbDaclPresentTRUE 值並不表示 pDacl 不是 NULL。 也就是說,pDacl 為 NULL,lpbDaclPresent 可以是 TRUE,這表示 NULL DACL 生效。 NULL DACL 隱含允許對物件的所有存取,而且與空的 DACL 不同。 空的 DACL 不允許存取物件。 如需建立適當 DACL 的詳細資訊,請參閱 建立 DACL

[out] pDacl

訪問控制 清單 的指標 (ACL) 。 如果 DACL 存在,函式會將 pDacl 指向的指標設定為安全性描述項 DACL 的位址。 如果 DACL 不存在,則不會儲存任何值。

如果函式將 NULL 值儲存在 pDacl 指向的指標中,則安全性描述項具有 NULL DACL。 NULL DACL 會隱含地允許對物件的所有存取。

如果應用程式需要非 NULL DACL,但遇到 NULL DACL,應用程式應該會安全地失敗,且不允許存取。

[out] lpbDaclDefaulted

如果安全性描述元有 DACL 存在,則旗標的指標會設定為SECURITY_DESCRIPTOR_CONTROL結構中 SE_DACL_DEFAULTED 旗標的值。 如果此旗標為 TRUE,則會以默認機制擷取 DACL;如果 為 FALSE,則表示 DACL 是由使用者明確指定。

傳回值

如果函式成功,函式會傳回非零。

如果函式失敗,它會傳回零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 securitybaseapi.h (包括 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

GetSecurityDescriptorControl

GetSecurityDescriptorGroup

GetSecurityDescriptorLength

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

InitializeSecurityDescriptor

IsValidSecurityDescriptor

低階 存取控制

低階 存取控制 函式

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL

SetSecurityDescriptorDacl