rtlSetDaclSecurityDescriptor 函数 (wdm.h)
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) 的其余可选参数将被忽略。 如果 DaclPresent 为 TRUE,则安全描述符中的SE_DACL_PRESENT标志设置为 TRUE ,并且 不会 忽略剩余的可选参数。 有关 SE_DACL_PRESENT 标志的详细信息,请参阅 SECURITY_DESCRIPTOR_CONTROL。
[in, optional] Dacl
指向安全描述符的 DACL 的指针。 如果此参数为 NULL,则安全描述符中的 DACL 指针设置为 NULL。 NULL DACL 指针无条件地授予对对象的所有访问权限,与空 DACL 不同。 空 DACL 拒绝对对象的所有访问。 如果 Dacl 为非 NULL,则调用方提供的 ACL 结构由安全描述符引用,但不会复制到中。 调用方可以从分页系统内存中分配 ACL 结构,并且可以调用 RtlCreateAcl 例程来初始化结构。
[in, optional] DaclDefaulted
DACL 是由某种默认机制提供的,还是由调用方显式指定。 如果此参数为 TRUE,则表示 DACL 由默认机制提供。 如果 DaclDefaulted 为 FALSE,则调用方显式指定 DACL。 RtlSetDaclSecurityDescriptor 将此参数指定的值复制到安全描述符中的SE_DACL_DEFAULTED控件标志。 有关 SE_DACL_DEFAULTED 标志的详细信息,请参阅 SECURITY_DESCRIPTOR_CONTROL。
返回值
RtlSetDaclSecurityDescriptor 可以返回以下状态值之一。
返回代码 | 说明 |
---|---|
|
已成功完成调用。 |
|
安全描述符的修订未知。 |
|
安全描述符不是绝对格式的安全描述符。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe (内核模式) ;Ntdll.dll (用户模式) |
IRQL | PASSIVE_LEVEL |