w32api - Справочник по Windows API
Найти:
На:





Функция RegCreateKeyEx создает указанный ключ. Если ключ уже существует в реестре, то функция открывает его. Эта функция оставлена для совместимости с Windows версии 3.1. Приложения для Win32 должны использовать функцию RegCreateKeyEx.

LONG RegCreateKeyEx(
    HKEY hKey,		// дескриптор открытого ключа
    LPCTSTR lpSubKey,	// адрес имени подключа 
    DWORD Reserved,	// зарезервировано 
    LPTSTR lpClass,	// адрес строки класса 
    DWORD dwOptions,	// флаг особых опций
    REGSAM samDesired,	// желаемый доступ безопасности
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,	// адрес структуры 
						// ключа безопасности
    PHKEY phkResult,	// адрес буфера для открытого ключа 
    LPDWORD lpdwDisposition 	// адрес буфера характерного значения
);
Параметры:

hKey Идентифицирует уже открытый ключ или один из предопределенных дескрипторов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG

Ключ, открытый или созданный функцией RegCreateKeyEx, являются подключами ключа, указанного в параметре hKey.
lpSubKey Адрес нульзаканчивающейся строки, определяющей имя подключа, который эта функция создает или открывает. Указанный подключ должен быть подключем ключа, указанного в параметре hKey. Этот подключ не должен начинатся с знака обратной черты ('\'). Этот параметр не должен быть равен NULL.
Reserved Зарезервирован; должен быть нулевым.
lpClass Адрес нульзаканчивающейся строки, определяющей класс (тип объекта) этого ключа. Этот параметр игнорируется если ключ уже существует.
dwOptions Определяет особые опции для ключа. Этот параметр может быть одним из следующих значений:


Значение:

Назначение:

REG_OPTION_NON_VOLATILE  

Это значение по умолчанию. При перезагрузке системы значение этого ключа сохраняется, т.е. информация сохраняется в файле, а не в памяти.

REG_OPTION_VOLATILE  

Windows NT/2000/XP: Информация сохраняется в памяти и не сохраняется при перезагрузке системы. Функция RegSaveKey не сохраняет такие ключи. Этот флаг игнорируется, если ключ уже существует. Это значение игнорируется в Windows 95.

REG_OPTION_BACKUP_RESTORE  

Windows NT/2000/XP: Если установлен этот флаг, то функция игнорирует параметр samDesired и пытается открыть ключ с требуемым доступ для резервного сохранения или востановления ключа. Если вызывающий поток имеет включенную привилегию SE_BACKUP_NAME, ключ открывается с доступом ACCESS_SYSTEM_SECURITY и KEY_READ. Если вызывающий поток имее включенную привилегию SE_RESTORE_NAME, ключ открывается с доступом ACCESS_SYSTEM_SECURITY и KEY_WRITE. Если включены обе привилегии, ключ будет иметь комбинированный доступ к обоим привилегиям. В Windows 95 этот параметр игнорируется.
samDesired Определяет маску доступа, которая определяет желаемый доступ безопасности для нового ключа. Этот параметр может быть комбинацией из следующих значений:


Значение:

Назначение:

KEY_ALL_ACCESS  

Комбинация из KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, и KEY_SET_VALUE.

KEY_CREATE_LINK  

Права создавать символические ссылки.

KEY_CREATE_SUB_KEY  

Права создавать подключи.

KEY_ENUMERATE_SUB_KEYS  

Права перечислять подключи.

KEY_EXECUTE  

Права на доступ ко чтению.

KEY_NOTIFY  

Права на изменение нотификации.

KEY_QUERY_VALUE  

Права запрашивать данные подключей.

KEY_READ  

Комбинация из KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, и KEY_NOTIFY.

KEY_SET_VALUE  

Права устанавливать данные подключей.

KEY_WRITE  

Комбинация из KEY_SET_VALUE и KEY_CREATE_SUB_KEY.
lpSecurityAttributes Адрес структуры SECURITY_ATTRIBUTES которая определяет: может ли возвращенный дескриптор наследоваться дочерними процессами. Если lpSecurityAttributes равен NULL, дескриптор не может наследоваться.

Windows NT/2000/XP: член lpSecurityDescriptor структуры определяет дескриптор безопасности для нового ключа. Если lpSecurityAttributes равен NULL, ключ получает дескриптор безопасности по умолчанию.

Windows 95/98/Me: член lpSecurityDescriptor структуры игнорируется.
phkResult Адрес переменной, куда будет возвращен дескриптор,открываемого или создаваемого ключа.
lpdwDisposition Адрес переменной, куда будет возвращен один из следующих значений:


Значение:

Назначение:

REG_CREATED_NEW_KEY  

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

REG_OPENED_EXISTING_KEY  

Ключ существует и был запросто открыт без изменений.

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

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

При ошибке, возвращаемое значение – это код ошибки, объявленный в WINERROR.H. Вы можете использовать функцию FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения общего описания ошибки.

Замечания:

Ключ, который создает функция RegCreateKeyEx, не имеет значений. Приложение может использовать функцию RegSetValue или RegSetValueEx для установки значений ключей.

Ключ, определенный в параметре hKey, должен быть открытым с доступом KEY_CREATE_SUB_KEY. Для открытия ключа используйте функцию RegCreateKeyEx или RegOpenKeyEx.

Приложение не может создавать ключ под HKEY_USERS или HKEY_LOCAL_MACHINE.

Приложение может использовать RegCreateKeyEx для временного закрытия части реестра. Когда закрывающий процесс создает новый ключ, он получает характерное значение REG_CREATED_NEW_KEY, указывающее на то, он владелец закрытой части реестра. Другой процесс пытается создать тот-же ключ и получает характерное значение REG_OPENED_EXISTING_KEY, указывающее на то, что другой процесс владеет закрытой частью.

Смотрите также:

RegCloseKey, RegCreateKey, RegDeleteKey, RegOpenKey, RegOpenKeyEx, RegSaveKey, SECURITY_ATTRIBUTES



Hosted by uCoz