Compartilhar via


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 pelo RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExou função regOpenKeyTransacted. 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 se 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 deve ser zero.

[in] samDesired

Uma máscara que especifica os direitos de acesso desejados à 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 de Direitos de Acesso e Segurança de Chave do Registro.

[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 predefinidas do Registro, 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.

Valor de retorno

Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.

Se a função falhar, o valor retornado será um 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.

Observações

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 no phkResult for uma chave predefinida do Registro, ela não será incluída na transação fornecida.

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

Nota

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. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

RegCloseKey

RegCreateKeyTransacted

RegDeleteKeyTransacted

Funções do Registro

Visão geral do Registro