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


Функция 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 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 535ERROR_NO_SYSTEM_RESOURCES эта функция завершается ошибкой.

Заметка

Заголовок winreg.h определяет RegOpenKeyTransacted как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка winreg.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

RegCloseKey

RegCreateKeyTransacted

RegDeleteKeyTransacted

Функции реестра

Обзор реестра