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,則此變數會收到 NULL。 NULL DACL 隱含地允許所有存取物件。
[out] DaclDefaulted
布爾變數的指標,這個變數會接收安全性描述項SECURITY_DESCRIPTOR_CONTROL結構中SE_DACL_DEFAULTED旗標的值。 如果此旗標 TRUE,則 DACL 是由預設機制所擷取。 如果它 FALSE,則 DACL 是由使用者明確指定。 只有當 *Dacl 收到非NULL 值時,這個值才有效。
傳回值
RtlGetDaclSecurityDescriptor 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:
傳回碼 | 描述 |
---|---|
|
安全性描述項的修訂層級未知或不受支援。 這是錯誤碼。 |
言論
*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 |