Функция RegOpenKeyTransactedA (winreg.h)
Открывает указанный раздел реестра и связывает его с транзакцией. Обратите внимание, что имена ключей не учитывает регистр.
Синтаксис
LSTATUS RegOpenKeyTransactedA(
[in] HKEY hKey,
[in, optional] LPCSTR lpSubKey,
[in] DWORD ulOptions,
[in] REGSAM samDesired,
[out] PHKEY phkResult,
[in] HANDLE hTransaction,
PVOID pExtendedParemeter
);
Параметры
[in] hKey
Дескриптор открытого раздела реестра. Этот дескриптор возвращается RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExили функцией RegOpenKeyTransacted. Он также может быть одним из следующих предопределенных ключей:
HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS
[in, optional] lpSubKey
Имя открываемого подраздела реестра.
Имена ключей не учитывает регистр.
Если параметр lpSubKeyNULL или указатель на пустую строку, а если hKey является предопределенным ключом, система обновляет предопределенный ключ, а phkResult получает тот же hKey дескриптор передается в функцию. В противном случае phkResult получает новый дескриптор открытого ключа.
Дополнительные сведения см. в разделе Ограничения размера элемента реестра.
[in] ulOptions
Этот параметр зарезервирован и должен быть нулевым.
[in] samDesired
Маска, указывающая требуемые права доступа к ключу. Функция завершается ошибкой, если дескриптор безопасности ключа не разрешает запрошенный доступ для вызывающего процесса. Дополнительные сведения см. в разделе "Безопасность и права доступа реестра".
[out] phkResult
Указатель на переменную, которая получает дескриптор открытого ключа. Если ключ не является одним из предопределенных разделов реестра, вызовите функцию RegCloseKey
[in] hTransaction
Дескриптор активной транзакции. Этот дескриптор возвращается функцией CreateTransaction.
pExtendedParemeter
Этот параметр зарезервирован и должен быть null.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS.
Если функция завершается ошибкой, возвращаемое значение представляет собой ненулевой код ошибки, определенный в Winerror.h. Функцию FormatMessage можно использовать с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения универсального описания ошибки.
Замечания
При открытии ключа с помощью этой функции последующие операции с ключом выполняются. Если неперекаченная операция выполняется с ключом перед фиксацией транзакции, откат транзакции выполняется. После фиксации или отката транзакции необходимо повторно открыть ключ с помощью функции RegCreateKeyTransacted или RegOpenKeyTransacted с активным дескриптором транзакций, чтобы выполнить дополнительные операции. Дополнительные сведения о транзакциях см. в диспетчере транзакций ядра.
Обратите внимание, что последующие операции с вложенными ключами этого ключа не выполняются автоматически. Поэтому функция RegDeleteKeyEx не выполняет транзакцию удаления. Вместо этого используйте функцию regDeleteKeyTransacted для выполнения операции трансактированного удаления.
В отличие от функции regCreateKeyTransacted, функция RegOpenKeyTransacted не создает указанный ключ, если ключ не существует в реестре.
Если служба или приложение олицетворяет разных пользователей, не используйте эту функцию с HKEY_CURRENT_USER. Вместо этого вызовите функцию regOpenCurrentUser
Если ключ, возвращенный в phkResult является стандартным разделом реестра, он не включен в указанную транзакцию.
Один раздел реестра можно открыть только в 65 534 раза. При попытке открыть операцию открытия 65 535
Заметка
Заголовок winreg.h определяет RegOpenKeyTransacted как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winreg.h (включая Windows.h) |
библиотеки |
Advapi32.lib |
DLL | Advapi32.dll |
См. также
Обзор реестра