RtlAbsoluteToSelfRelativeSD 函数 (ntifs.h)
RtlAbsoluteToSelfRelativeSD 例程使用绝对格式的安全描述符作为模板,以自相对格式创建新的安全描述符。
语法
NTSYSAPI NTSTATUS RtlAbsoluteToSelfRelativeSD(
[in] PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
[in, out] PULONG BufferLength
);
参数
[in] AbsoluteSecurityDescriptor
指向调用方分配的缓冲区的指针,该缓冲区包含绝对格式 的SECURITY_DESCRIPTOR 结构。 RtlAbsoluteToSelfRelativeSD 以自相对格式创建此安全描述符的版本,而无需修改原始版本。
[out] SelfRelativeSecurityDescriptor
指向调用方分配的缓冲区的指针,该缓冲区接收自相对格式的安全描述符。
[in, out] BufferLength
指向调用方分配的变量的指针,该变量指定 SelfRelativeSecurityDescriptor 参数指向的缓冲区的大小(以字节为单位)。 如果缓冲区的大小不足以容纳安全描述符, RtlAbsoluteToSelfRelativeSD 将返回STATUS_BUFFER_TOO_SMALL,并将此变量设置为所需的最小大小。
返回值
RtlAbsoluteToSelfRelativeSD 返回STATUS_SUCCESS或适当的 NTSTATUS 值,如以下值之一:
返回代码 | 说明 |
---|---|
|
AbsoluteSecurityDescriptor 参数指向的缓冲区不包含绝对格式的SECURITY_DESCRIPTOR结构。 STATUS_BAD_DESCRIPTOR_FORMAT是错误代码。 |
|
SelfRelativeSecurityDescriptor 参数指向的缓冲区太小,无法包含自相对格式的安全描述符。 STATUS_BUFFER_TOO_SMALL是错误代码。 |
注解
采用绝对格式的安全描述符包含指向它所包含的信息的指针,而不是包含信息本身。 采用自我相对格式的安全描述符包含连续内存块中的信息。 在自相对安全描述符中, SECURITY_DESCRIPTOR 结构始终启动信息,但安全描述符的其他组件可以按照任何顺序遵循SECURITY_DESCRIPTOR结构。 安全描述符的组成部分不使用内存地址,而是由安全描述符开头的偏移来标识。 当安全描述符必须存储在磁盘上或通过通信协议传输时,这种格式很有用。
若要通过将自相对格式的安全描述符用作模板,以绝对格式创建新的安全描述符,请使用 RtlSelfRelativeToAbsoluteSD。
有关安全性和访问控制的详细信息,请参阅Microsoft Windows SDK文档。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Server 2003 SP1 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe (内核模式) ;Ntdll.dll (用户模式) |
IRQL | <= APC_LEVEL |