RegSetKeySecurity  1637AS_ 

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_INFORMATION1IEJNC4 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 FormatMessageN7QRMP 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