MakeSelfRelativeSD 函数 (securitybaseapi.h)

MakeSelfRelativeSD 函数通过将绝对格式的安全描述符用作模板,创建自相对格式的安全描述符。

语法

BOOL MakeSelfRelativeSD(
  [in]            PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  [out, optional] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  [in, out]       LPDWORD              lpdwBufferLength
);

参数

[in] pAbsoluteSecurityDescriptor

指向绝对格式 的 SECURITY_DESCRIPTOR 结构的指针。 函数以自相对格式创建此安全描述符的版本,而无需修改原始版本。

[out, optional] pSelfRelativeSecurityDescriptor

指向函数用自相对格式的安全描述符填充的缓冲区的指针。

[in, out] lpdwBufferLength

指向变量的指针,该变量指定 pSelfRelativeSD 参数指向的缓冲区的大小。 如果缓冲区不足以容纳安全描述符,则函数会失败,并将此变量设置为所需的最小大小。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 可能的返回代码包括但不限于以下内容。

返回代码/值 说明
ERROR_INSUFFICIENT_BUFFER
0x7A
一个或多个缓冲区太小。

注解

采用绝对格式的安全描述符包含指向它所包含的信息的指针,而不是包含信息本身。 采用自我相对格式的安全描述符包含连续内存块中的信息。 在自相对安全描述符中, SECURITY_DESCRIPTOR 结构始终启动信息,但安全描述符的其他组件可以按任意顺序跟随结构。 安全描述符的组成部分不使用内存地址,而是由安全描述符开头的偏移来标识。 当安全描述符必须存储在软盘上或通过通信协议传输时,此格式非常有用。

将安全对象复制到各种媒体的服务器可以使用 MakeSelfRelativeSD 函数从绝对安全描述符和 MakeAbsoluteSD 函数创建自相对安全描述符,以便从自相对安全描述符创建绝对安全描述符。

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 securitybaseapi.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

低级别访问控制

低级别访问控制函数

MakeAbsoluteSD

SECURITY_DESCRIPTOR