MakeAbsoluteSD

【勇芳软件工作室】汉化HomePreviousNext

MakeAbsoluteSD函数通过使用自相关格式的安全描述符作为模板,以绝对格式创建安全描述符。

BOOL MakeAbsoluteSD(

PSECURITY_DESCRIPTOR 【pSelfRelativeSecurityDescriptor】,//地址自相关SD
PSECURITY_DESCRIPTOR 【pAbsoluteSecurityDescriptor】,//绝对SD地址
LPDWORD 【lpdwAbsoluteSecurityDescriptorSize】,//绝对SD大小的地址
PACL 【pDacl】,//自由ACL的地址
LPDWORD 【lpdwDaclSize】,//自由ACL大小的地址
PACL 【pSacl】,//系统ACL的地址
LPDWORD 【lpdwSaclSize】,//系统ACL大小的地址
PSID 【pOwner】,//所有者SID的地址
LPDWORD 【lpdwOwnerSize】,//所有者SID大小的地址
PSID 【pPrimaryGroup】,//主组SID的地址
LPDWORD 【lpdwPrimaryGroupSize】//组SID的大小的地址
); 

参数

【pSelfRelativeSecurityDescriptor】

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

【pAbsoluteSecurityDescriptor】

指向功能填充绝对格式安全描述符主体的缓冲区。此信息格式为SECURITY_DESCRIPTOR结构。

【lpdwAbsoluteSecurityDescriptorSize】

指向指定【pAbsoluteSecurityDescriptor】参数指向的缓冲区大小的变量。如果缓冲区不足以用于安全描述符,则该函数将失败,并将此变量设置为最小所需大小。

【pDacl】

指向一个缓冲区,该函数用绝对格式安全描述符的自由访问控制列表(ACL)填充。绝对格式安全描述符的主体引用了这个指针。

【lpdwDaclSize】

指向指定【pDacl】参数指向的缓冲区大小的变量。如果缓冲区不足以达到ACL,则该函数将失败,并将此变量设置为最小所需大小。

【pSacl】

指向缓冲区,该函数填充绝对格式安全描述符的系统ACL。绝对格式安全描述符的主体引用了这个指针。

【lpdwSaclSize】

指向指定【pSacl】参数指向的缓冲区大小的变量。如果缓冲区不足以达到ACL,则该函数将失败,并将此变量设置为最小所需大小。

【pOwner】

指向缓冲区的函数填充绝对格式安全描述符的所有者的安全标识符(SID)。绝对格式安全描述符的主体引用了这个指针。

【lpdwOwnerSize】

指向指定【pOwner】参数指向的缓冲区大小的变量。如果缓冲区不足以达到SID,则该函数将失败,并将此变量设置为最小所需大小。

【pPrimaryGroup】

指向缓冲区的函数填充绝对格式安全描述符的主组的SID。绝对格式安全描述符的主体引用了这个指针。

【lpdwPrimaryGroupSize】

指向指定【pPrimaryGroup】参数指向的缓冲区大小的变量。如果缓冲区不足以达到SID,则该函数将失败,并将此变量设置为最小所需大小。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

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

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

也可以看看

MakeSelfRelativeSD, SECURITY_DESCRIPTOR