MakeAbsoluteSD 函数 (securitybaseapi.h)
MakeAbsoluteSD 函数通过使用自相对格式的安全描述符作为模板,创建绝对格式的安全描述符。
语法
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
参数
[in] pSelfRelativeSecurityDescriptor
指向自相对格式 SECURITY_DESCRIPTOR 结构的指针。 函数创建此安全描述符的绝对格式版本,而无需修改原始安全描述符。
[out, optional] pAbsoluteSecurityDescriptor
指向缓冲区的指针,函数用绝对格式安全描述符的main正文填充该缓冲区。 此信息的格式设置为 SECURITY_DESCRIPTOR 结构。
[in, out] lpdwAbsoluteSecurityDescriptorSize
指向变量的指针,该变量指定 pAbsoluteSD 参数指向的缓冲区的大小。 如果缓冲区对于安全描述符不够大,函数会失败,并将此变量设置为所需的最小大小。
[out, optional] pDacl
指向函数用绝对格式安全描述符 (的 DACL) 自由 访问控制列表 填充的缓冲区的指针。 绝对格式安全描述符的main正文引用此指针。
[in, out] lpdwDaclSize
指向变量的指针,该变量指定 pDacl 参数指向的缓冲区的大小。 如果缓冲区的大小不足以满足访问控制 列表 (ACL) ,则函数将失败,并将此变量设置为所需的最小大小。
[out, optional] pSacl
指向缓冲区的指针,该函数使用绝对格式安全描述符的系统 访问控制列表 (SACL) 填充。 绝对格式安全描述符的main正文引用此指针。
[in, out] lpdwSaclSize
指向变量的指针,该变量指定 pSacl 参数指向的缓冲区的大小。 如果缓冲区对于 ACL 不够大,函数将失败,并将此变量设置为所需的最小大小。
[out, optional] pOwner
指向缓冲区的指针,函数使用绝对格式安全描述符所有者的安全 标识符 (SID) 填充。 绝对格式安全描述符的main正文引用此指针。
[in, out] lpdwOwnerSize
指向变量的指针,该变量指定 pOwner 参数指向的缓冲区的大小。 如果缓冲区对于 SID 不够大,函数将失败,并将此变量设置为所需的最小大小。
[out, optional] pPrimaryGroup
指向缓冲区的指针,函数用绝对格式安全描述符的主组的 SID 填充。 绝对格式安全描述符的main正文引用此指针。
[in, out] lpdwPrimaryGroupSize
指向变量的指针,该变量指定 pPrimaryGroup 参数指向的缓冲区的大小。 如果缓冲区对于 SID 不够大,函数将失败,并将此变量设置为所需的最小大小。
返回值
如果函数成功,该函数将返回非零值。
如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。 可能的返回代码包括但不限于以下内容。
返回代码/值 | 说明 |
---|---|
|
一个或多个缓冲区太小。 |
注解
采用绝对格式的安全描述符包含指向它所包含的信息的指针,而不是信息本身。 采用自我相对格式的安全描述符包含连续内存块中的信息。 在自相对安全描述符中, SECURITY_DESCRIPTOR 结构始终启动信息,但安全描述符的其他组件可以按任意顺序遵循该结构。 自我相对安全描述符的组成部分不使用内存地址,而是由安全描述符开头的偏移来标识。 当安全描述符必须存储在软盘上或通过通信协议传输时,此格式非常有用。
将受保护对象复制到各种媒体的服务器可以使用 MakeAbsoluteSD 函数从自相对安全描述符创建绝对安全描述符,并使用 MakeSelfRelativeSD 函数从绝对安全描述符创建自相对安全描述符。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | securitybaseapi.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |