16 сент. 2010 г.

RegSetKeySecurity

Функция RegSetKeySecurity устанавливает безопасность для открытого ключа реестра.
LONG RegSetKeySecurity(
    HKEY hKey, // открытый дескриптор ключа
    SECURITY_INFORMATION SecurityInformation, // содержание дескриптора 
    PSECURITY_DESCRIPTOR pSecurityDescriptor  // адрес дескриптора для ключа  
   );
Параметры:

hKey Определяет открытый ключ, для которого устанавливается дескриптор безопасности.
SecurityInformation Определяет структуру SECURITY_INFORMATION, которая указывает содержание дескриптора безопасности.
pSecurityDescriptor Адрес структуры SECURITY_DESCRIPTOR, которая указывает атрибуты безопасности для их установки указанному ключу.
Возвращаемые значения:
Если функция успешно, возвращается значение ERROR_SUCCESS.

При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.
Замечания:
Вызов функции удачен только тогда, когда учытуются следующие условия:
  • Если устанавливается владелец или группа владельцев ключа, вызывающий функцию должен иметь разрешение или иметь привилегию SE_TAKE_OWNERSHIP_NAME.
  • Если устанавливается список осмотрительного контроля допуска (DACL) ключа, вызывающий должен иметь разрешение WRITE_DAC или быть владельцем объекта.
  • Если устанавливается список системного контроля допуска (SACL) ключа, вызывающий должен иметь привилегию SE_SECURITY_NAME
Если hKey является одним из предопределенных ключей, предопределенный ключ должен быть закрыт с помощью RegCloseKey. Это означает, что новая информация о безопасности будет иметь эффект в следующий раз при упоминании предопределенного ключа.