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 值,如下所示:
返回代码 | 说明 |
---|---|
|
安全描述符的修订级别未知或不受支持。 这是错误代码。 |
注解
*DaclPresent 的值为 TRUE 并不意味着 *Dacl 为非 NULL。 也就是说, *DaclPresent 可以为 TRUE ,而 *Dacl 为 NULL,这意味着 NULL DACL 有效。 NULL DACL 隐式允许对对象的所有访问,与空 DACL 不同。 空 DACL 不允许访问对象。
有关安全性和访问控制的详细信息,请参阅 面向驱动程序开发人员的 Windows 安全模型 和 Windows SDK 中有关这些主题的文档。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Server 2003 SP1 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |