共用方式為


RtlGetDaclSecurityDescriptor 函式 (ntifs.h)

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 值,如下所示:

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

言論

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

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

要求

要求 價值
最低支援的用戶端 Windows Server 2003 SP1
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR