Função RegOpenKeyTransactedA (winreg.h)

Abre a chave do Registro especificada e a associa a uma transação. Observe que os nomes de chave não diferenciam maiúsculas de minúsculas.

Sintaxe

LSTATUS RegOpenKeyTransactedA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [in]           DWORD  ulOptions,
  [in]           REGSAM samDesired,
  [out]          PHKEY  phkResult,
  [in]           HANDLE hTransaction,
                 PVOID  pExtendedParemeter
);

Parâmetros

[in] hKey

Um identificador para uma chave aberta do Registro. Esse identificador é retornado pela função RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx ou RegOpenKeyTransacted . Ela também pode ser uma das seguintes chaves predefinidas:

HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS

[in, optional] lpSubKey

O nome da subchave do Registro a ser aberta.

Os nomes de chave não diferenciam maiúsculas de minúsculas.

Se o parâmetro lpSubKey for NULL ou um ponteiro para uma cadeia de caracteres vazia e hKey for uma chave predefinida, o sistema atualizará a chave predefinida e phkResult receberá o mesmo identificador hKey passado para a função. Caso contrário, phkResult receberá um novo identificador para a chave aberta.

Para obter mais informações, consulte Limites de tamanho do elemento do Registro.

[in] ulOptions

Esse parâmetro é reservado e precisa ser zero.

[in] samDesired

Uma máscara que especifica os direitos de acesso desejados para a chave. A função falhará se o descritor de segurança da chave não permitir o acesso solicitado para o processo de chamada. Para obter mais informações, consulte Segurança de chave do Registro e Direitos de Acesso.

[out] phkResult

Um ponteiro para uma variável que recebe um identificador para a chave aberta. Se a chave não for uma das chaves do Registro predefinidas, chame a função RegCloseKey depois de terminar de usar o identificador.

[in] hTransaction

Um identificador para uma transação ativa. Esse identificador é retornado pela função CreateTransaction .

pExtendedParemeter

Esse parâmetro é reservado e deve ser NULL.

Retornar valor

Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.

Se a função falhar, o valor de retorno será o código de erro diferente de zero definido em Winerror.h. Você pode usar a função FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição genérica do erro.

Comentários

Quando uma chave é aberta usando essa função, as operações subsequentes na chave são transacionadas. Se uma operação não transacionada for executada na chave antes que a transação seja confirmada, a transação será revertida. Depois que uma transação for confirmada ou revertida, você deverá reabrir a chave usando a função RegCreateKeyTransacted ou RegOpenKeyTransacted com um identificador de transação ativo para fazer operações adicionais transacionadas. Para obter mais informações sobre transações, consulte Kernel Transaction Manager.

Observe que as operações subsequentes em subchaves dessa chave não são transacionadas automaticamente. Portanto, a função RegDeleteKeyEx não executa uma operação de exclusão transacionada. Em vez disso, use a função RegDeleteKeyTransacted para executar uma operação de exclusão transacionada.

Ao contrário da função RegCreateKeyTransacted , a função RegOpenKeyTransacted não criará a chave especificada se a chave não existir no Registro.

Se seu serviço ou aplicativo representar usuários diferentes, não use essa função com HKEY_CURRENT_USER. Em vez disso, chame a função RegOpenCurrentUser .

Se a chave retornada em phkResult for uma chave do Registro predefinida, ela não será incluída na transação fornecida.

Uma única chave do Registro pode ser aberta apenas 65.534 vezes. Ao tentar a 65.535ª operação aberta, essa função falha com ERROR_NO_SYSTEM_RESOURCES.

Observação

O cabeçalho winreg.h define RegOpenKeyTransacted como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winreg.h (inclua Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Regclosekey

RegCreateKeyTransacted

RegDeleteKeyTransacted

Funções do Registro

Visão geral do Registro