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。 如果 lpbDaclPresent 為 TRUE,則安全性描述元包含 DACL,而此函式中的其餘輸出參數會收到有效值。 如果 lpbDaclPresent 為 FALSE,則安全性描述項不包含 DACL,而其餘的輸出參數則不會接收有效的值。
lpbDaclPresent 的 TRUE 值並不表示 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 |