Поделиться через


Функция ClusterRegCreateKey (clusapi.h)

Создает указанный ключ базы данных кластера . Если ключ уже существует в базе данных, ClusterRegCreateKey открывает его без внесения изменений.

Синтаксис

LONG ClusterRegCreateKey(
  [in]            HKEY                  hKey,
  [in]            LPCWSTR               lpszSubKey,
  [in]            DWORD                 dwOptions,
  [in]            REGSAM                samDesired,
  [in, optional]  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [out]           PHKEY                 phkResult,
  [out, optional] LPDWORD               lpdwDisposition
);

Параметры

[in] hKey

Обработка открытого ключа базы данных кластера. Этот параметр не может иметь значение NULL.

[in] lpszSubKey

Указатель на строку Юникода с пустым завершением, указывающую имя подраздела, который необходимо создать или открыть. Параметр lpszSubKey должен указывать на подраздел, который:

  • Является дочерним ключом ключа, определяемого hKey.
  • Не должен начинаться с символа обратной косой черты ( \ ).
  • Не должно иметь значение NULL.
Параметр lpszSubKey может указывать на пустую строку, в результате чего ClusterRegCreateKey возвращает дескриптор в ключ базы данных, представленный hKey.

[in] dwOptions

Задает специальные параметры для этого ключа. В настоящее время dwOptions можно задать следующее значение.

REG_OPTION_NON_VOLATILE (0x00000000)

Открытый или созданный ключ не является переменным; сведения сохраняются при перезапуске системы.

[in] samDesired

Маска доступа, указывающая необходимый доступ к безопасности для нового ключа. Допустимы следующие значения.

Дополнительные сведения см. в разделе Безопасность раздела реестра и права доступа.

ACCESS_SYSTEM_SECURITY (0x01000000)

Разрешение на доступ к системной безопасности. Он используется для указания доступа к системным спискам управления доступом (SACL). Для этого типа доступа требуется, чтобы вызывающий процесс был иметь привилегии SE_SECURITY_NAME (управление аудитом и журналом безопасности).

DELETE (0x00010000)

Разрешение на удаление.

KEY_ALL_ACCESS (0x000F003F)

Сочетание KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK и KEY_SET_VALUE доступа.

Разрешение на создание символьной ссылки.

KEY_ENUMERATE_SUB_KEYS (0x00000008)

Разрешение на перечисление подразделов.

KEY_EXECUTE (0x00020019)

Разрешение на доступ на чтение.

KEY_NOTIFY (0x00000010)

Разрешение на уведомление об изменениях.

KEY_QUERY_VALUE (0x00000001)

Разрешение на запрос данных подраздела.

KEY_READ (0x00020019)

Сочетание KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS и KEY_NOTIFY доступа.

KEY_SET_VALUE (0x00000002)

Разрешение на изменение данных подраздела.

KEY_WRITE (0x00020006)

Сочетание KEY_SET_VALUE и KEY_CREATE_SUB_KEY доступа.

READ_CONTROL (0x00020000)

Разрешение на чтение списка управления владельцем, группой и дискреционным доступом (DACL) дескриптора безопасности.

WRITE_DAC (0x00040000)

Разрешение на запись в DACL.

WRITE_OWNER (0x00080000)

Разрешение на изменение владельца.

[in, optional] lpSecurityAttributes

Этот параметр не учитывается. Чтобы задать атрибуты безопасности для нового раздела реестра, вызовите функцию ClusterRegSetKeySecurity после успешного возврата ClusterRegCreateKey .

[out] phkResult

Указатель на дескриптор открытого или созданного ключа.

[out, optional] lpdwDisposition

Указатель на значение, указывающее, был ли открыт или создан ключ, на который указывает lpszSubKey . Допустимы следующие значения.

REG_CREATED_NEW_KEY (0x00000001)

Ключ не существовал и был создан.

REG_OPENED_EXISTING_KEY (0x00000002)

Ключ существовал и был открыт.

Возвращаемое значение

Если операция выполнена успешно, функция возвращает ERROR_SUCCESS.

Если операция завершается сбоем, функция возвращает код системной ошибки.

Комментарии

Вызывающие абоненты должны вызвать ClusterRegCloseKey , чтобы закрыть дескриптор ключа, созданный функцией ClusterRegCreateKey после завершения работы с ней.

Не вызывайте ClusterRegCreateKey из следующих функций точки входа библиотеки DLL ресурсов:

ClusterRegCreateKey можно безопасно вызывать из любой другой функции точки входа DLL ресурсов или из рабочего потока. Дополнительные сведения см. в разделе Вызовы функций, которые следует избегать в библиотеках DLL ресурсов.

Требования

Требование Значение
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter
Целевая платформа Windows
Header clusapi.h
Библиотека ClusAPI.lib
DLL ClusAPI.dll

См. также раздел

Функции доступа к реестру кластера

ClusterRegCloseKey

ClusterRegDeleteKey

ClusterRegOpenKey