The RegSetKeySecurity function sets the security of an open registry key.
LONG RegSetKeySecurity(
HKEY hKey, | // open handle of key to set |
SECURITY_INFORMATION SecurityInformation, | // descriptor contents |
PSECURITY_DESCRIPTOR pSecurityDescriptor | // address of descriptor for key |
); |
Parameters
hKey
Identifies an open key for which the security descriptor is set.
SecurityInformation
Specifies a SECURITY_INFORMATION structure that indicates the contents of the supplied security descriptor.
Because subkeys are not ordered, any new subkey will have an arbitrary index. This means the function may return subkeys in any order.
pSecurityDescriptor
Points to a SECURITY_DESCRIPTOR structure that specifies the security attributes to set for the specified key.
Return Values
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. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.
Remarks
This function succeeds only if the following conditions are met:
·If the key's owner or group is being set, the caller must have WRITE_OWNER permission or have the SE_TAKE_OWNERSHIP_NAME privilege.
·If the key's discretionary access-control list (DACL) is being set, the caller must have WRITE_DAC permission or be the object's owner.
·If the key's system access-control list (SACL) is being set, the caller must have the SE_SECURITY_NAME privilege.
If hKey is one of the predefined keys, the predefined key should be closed with RegCloseKey. That ensures that the new security information is in effect the next time the predefined key is referenced.
See Also
RegCloseKey, RegDeleteKey, RegGetKeySecurity, SECURITY_INFORMATION