[New - Windows NT]
SetNamedSecurityInfo函数在指定对象的安全描述符中设置指定的安全信息。来电者按名称识别对象。
DWORD SetNamedSecurityInfo(
LPTSTR 【pObjectName】, | //对象的名称 |
SE_OBJECT_TYPE 【ObjectType】, | //对象类型 |
SECURITY_INFORMATION 【SecurityInfo】, | //要设置的安全信息类型 |
PSID 【psidOwner】, | //指向新所有者SID的指针 |
PSID 【psidGroup】, | //指向新的主组SID的指针 |
PACL 【pDacl】, | //指向新DACL的指针 |
PACL 【pSacl】 | //指向新的SACL的指针 |
); |
参数
【pObjectName】
指向以空值终止的字符串,指定为其设置安全信息的对象的名称。这可以是NTFS文件系统上的本地或远程文件或目录的名称,Windows NT网络共享名称,注册表项,信号量,事件,互斥体,文件映射或等待计时器。
有关不同对象类型的字符串格式的说明,请参阅SE_OBJECT_TYPE.
【ObjectType】
指定SE_OBJECT_TYPE枚举中指示由【pObjectName】参数命名的对象类型的值。
【SecurityInfo】
一组SECURITY_INFORMATION位标志,表示要设置的安全信息的类型。此参数可以是以下值的组合。
值 | 含义 |
OWNER_SECURITY_INFORMATION | 在对象的安全描述符中设置所有者安全标识符(SID)。【psidOwner】参数指向新的SID。 |
GROUP_SECURITY_INFORMATION | 在对象的安全描述符中设置主组SID。【psidGroup】参数指向新的SID。 |
DACL_SECURITY_INFORMATION | 在对象的安全描述符中设置自由访问控制列表(DACL)。【pDacl】参数指向新的DACL。 |
SACL_SECURITY_INFORMATION | 在对象的安全描述符中设置系统访问控制列表(SACL)。【pSacl】参数指向新的SACL。 |
【psidOwner】
指向识别对象所有者的SID的指针。SID必须是可以分配为安全描述符的所有者SID的SID。【SecurityInfo】参数必须包含OWNER_SECURITY_INFORMATION标志。调用者必须对该对象具有WRITE_OWNER访问权限或启用SE_TAKE_OWNERSHIP_NAME权限。如果不设置所有者SID,则此参数可以为NULL。
【psidGroup】
指向标识对象的主组的SID的指针。【SecurityInfo】参数必须包含GROUP_SECURITY_INFORMATION标志。如果不设置主组SID,则此参数可以为NULL。
【pDacl】
指向新DACL的对象。【SecurityInfo】参数必须包含DACL_SECURITY_INFORMATION标志。调用者必须对该对象具有WRITE_DAC访问权限,或者是该对象的所有者。如果不设置DACL,此参数可以为NULL。
【pSacl】
指向对象的新SACL。【SecurityInfo】参数必须包含SACL_SECURITY_INFORMATION标志。主叫方必须启用SE_SECURITY_NAME特权。如果不设置SACL,此参数可以为NULL。
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。
也可以看看
ACL, GetNamedSecurityInfo, GetSecurityInfo, SE_OBJECT_TYPE, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetSecurityInfo, SID