共用方式為


(ntifs.h) RtlGetDaclSecurityDescriptor 函式

RtlGetDaclSecurityDescriptor 例程會傳回安全性描述元的任意 ACL (DACL) 指標。

語法

NTSYSAPI NTSTATUS RtlGetDaclSecurityDescriptor(
  [in]  PSECURITY_DESCRIPTOR SecurityDescriptor,
  [out] PBOOLEAN             DaclPresent,
  [out] PACL                 *Dacl,
  [out] PBOOLEAN             DaclDefaulted
);

參數

[in] SecurityDescriptor

要傳回其 DACL 之SECURITY_DESCRIPTOR 指標。

[out] DaclPresent

布爾變數的指標,指出指定之安全性描述項中是否有 DACL。 如果這個變數收到 TRUE,則安全性描述項會包含 DACL,而其餘的輸出參數則會收到有效的值。 如果這個變數收到 FALSE,則安全性描述元不包含 DACL,而其餘的輸出參數則不會接收有效的值。

[out] Dacl

接收安全描述元之 DACL 位址之變數的指標。 如果安全性描述項沒有 DACL,則此變數不會收到值。 如果安全性描述項具有 NULL DACL,則此變數會收到 NULLNULL DACL 會隱含地允許存取物件。

[out] DaclDefaulted

布爾變數的指標,這個變數會接收安全性描述元SECURITY_DESCRIPTOR_CONTROL結構中SE_DACL_DEFAULTED旗標的值。 如果此旗標為 TRUE,則會以默認機制擷取 DACL。 如果為 FALSE,則 DACL 是由使用者明確指定。 只有在 *Dacl 收到非 NULL 值時,這個值才有效。

傳回值

RtlGetDaclSecurityDescriptor 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:

傳回碼 Description
STATUS_UNKNOWN_REVISION
安全性描述項的修訂層級未知或不受支援。 這是錯誤碼。

備註

*DaclPresentTRUE 值並不表示 *Dacl 不是 NULL。 也就是說, *DaclPresent 可以是 TRUE ,而 *DaclNULL,這表示 NULL DACL 有效。 NULL DACL 會隱含地允許對物件的所有存取,而且與空的 DACL 不同。 空的 DACL 不允許存取物件。

如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程序開發人員的 Windows 安全性模型 ,以及 Windows SDK 中這些主題的相關文件。

規格需求

需求
最低支援的用戶端 Windows Server 2003 SP1
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR