The SetSecurityInfo function sets specified security information in the security descriptor of a specified object. The caller identifies the object by a handle.
DWORD SetSecurityInfo(
  HANDLE handle,  // handle to the object
  SE_OBJECT_TYPE ObjectType,
                  // type of object
  SECURITY_INFORMATION SecurityInfo, 
                  // type of security information to set
  PSID psidOwner, // pointer to the new owner SID
  PSID psidGroup, // pointer to the new primary group SID
  PACL pDacl,     // pointer to the new DACL
  PACL pSacl      // pointer to the new SACL
);
 | Value | Meaning | 
|---|---|
| OWNER_SECURITY_INFORMATION | |
| Sets the object's owner security identifier (SID). The psidOwner parameter points to the new SID. The handle parameter must have WRITE_OWNER access, or the calling process must be the object's owner or have the SE_TAKE_OWNERSHIP_NAME privilege enabled. | |
| GROUP_SECURITY_INFORMATION | |
| Sets the object's primary group SID. The psidGroup parameter points to the new SID. The handle parameter must have WRITE_OWNER access, or the calling process must be the object's owner. | |
| DACL_SECURITY_INFORMATION | |
| Sets the object's discretionary access control list (DACL). The pDacl parameter points to the new DACL. The handle parameter must have WRITE_DAC access, or the calling process must be the object's owner. | |
| SACL_SECURITY_INFORMATION | |
| Sets the object's system access control list (SACL). The pSacl parameter points to the new SACL. The handle parameter must have ACCESS_SYSTEM_SECURITY access. The proper way to get this access is to enable the SE_SECURITY_NAME privilege in the caller's current access token, open the handle for ACCESS_SYSTEM_SECURITY access, and then disable the privilege. | |
If the function succeeds, the return value is ERROR_SUCCESS.
If the function fails, the return value is a nonzero error code defined in WINERROR.H.
  Windows NT: Requires version 4.0 or later.
  Windows: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in aclapi.h.
  Import Library: Use advapi32.lib.
Windows NT 4.0 Access Control Overview, Windows NT 4.0 Access-Control Functions, ACL, GetNamedSecurityInfo, GetSecurityInfo, SE_OBJECT_TYPE, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetNamedSecurityInfo, SID