(wdm.h) RtlSetDaclSecurityDescriptor 函式

RtlSetDaclSecurityDescriptor 例程會設定絕對格式安全性描述元的 DACL 資訊,或者如果安全性描述符中已經有 DACL,則會被取代。

語法

NTSYSAPI NTSTATUS RtlSetDaclSecurityDescriptor(
  [in, out]      PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]           BOOLEAN              DaclPresent,
  [in, optional] PACL                 Dacl,
  [in, optional] BOOLEAN              DaclDefaulted
);

參數

[in, out] SecurityDescriptor

SECURITY_DESCRIPTOR 結構的指標。 此結構是要套用 DACL 的安全性描述元。

[in] DaclPresent

是否表示 DACL 存在於安全性描述符中。 如果此參數為 FALSE,RtlSetDaclSecurityDescriptor 會將安全性描述元中的SE_DACL_PRESENT控件旗標設定為 FALSE。 在此情況下,會忽略 Dacl 和 DaclDefaulted (其餘的選擇性參數) 。 如果 DaclPresentTRUE,則安全性描述元中的SE_DACL_PRESENT旗標會設定為 TRUE ,而且 不會 忽略其餘的選擇性參數。 如需SE_DACL_PRESENT旗標的詳細資訊,請參閱 SECURITY_DESCRIPTOR_CONTROL

[in, optional] Dacl

安全性描述項之 DACL 的指標。 如果此參數為 NULL,則安全性描述元中的 DACL 指標會設定為 NULLNULL DACL 指標會無條件地授與物件的所有存取權,而且與空的 DACL 不同。 空的 DACL 會拒絕對物件的所有存取。 如果 Dacl 為非 NULL,則呼叫端所提供的 ACL 結構會由 參考,但不會複製到安全性描述元中。 呼叫端可以從分頁系統記憶體配置 ACL 結構,也可以呼叫 RtlCreateAcl 例程來初始化結構。

[in, optional] DaclDefaulted

DACL 是由某些默認機制提供,還是由呼叫端明確指定。 如果此參數為 TRUE,則DACL是由默認機制提供。 如果 DaclDefaultedFALSE,則呼叫端會明確指定 DACL。 RtlSetDaclSecurityDescriptor 會將此參數指定的值複製到安全性描述元中的SE_DACL_DEFAULTED控件旗標。 如需SE_DACL_DEFAULTED旗標的詳細資訊,請參閱 SECURITY_DESCRIPTOR_CONTROL

傳回值

RtlSetDaclSecurityDescriptor 可以傳回下列其中一個狀態值。

傳回碼 Description
STATUS_SUCCESS
呼叫已順利完成。
STATUS_UNKNOWN_REVISION
安全性描述元的修訂未知。
STATUS_INVALID_SECURITY_DESCR
安全性描述元不是絕對格式的安全性描述元。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe (核心模式) ;Ntdll.dll (使用者模式)
IRQL PASSIVE_LEVEL

另請參閱

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL