Función RegOpenKeyTransactedA (winreg.h)

Abre la clave del Registro especificada y la asocia a una transacción. Tenga en cuenta que los nombres de clave no distinguen mayúsculas de minúsculas.

Sintaxis

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

Identificador de una clave del Registro abierta. Este identificador lo devuelve la función RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx o RegOpenKeyTransacted . También puede ser una de las siguientes claves predefinidas:

HKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_USERS HKEY_LOCAL_MACHINE

[in, optional] lpSubKey

Nombre de la subclave del Registro que se va a abrir.

Los nombres de clave no distinguen mayúsculas de minúsculas.

Si el parámetro lpSubKey es NULL o un puntero a una cadena vacía, y si hKey es una clave predefinida, el sistema actualiza la clave predefinida y phkResult recibe el mismo identificador hKey pasado a la función. De lo contrario, phkResult recibe un nuevo identificador de la clave abierta.

Para obtener más información, vea Límites de tamaño de elemento del Registro.

[in] ulOptions

Este parámetro está reservado y debe ser cero.

[in] samDesired

Máscara que especifica los derechos de acceso deseados a la clave. Se produce un error en la función si el descriptor de seguridad de la clave no permite el acceso solicitado para el proceso de llamada. Para obtener más información, consulte Derechos de acceso y seguridad de clave del Registro.

[out] phkResult

Puntero a una variable que recibe un identificador de la clave abierta. Si la clave no es una de las claves del Registro predefinidas, llame a la función RegCloseKey una vez que haya terminado de usar el identificador .

[in] hTransaction

Identificador de una transacción activa. La función CreateTransaction devuelve este identificador.

pExtendedParemeter

Este parámetro está reservado y debe ser NULL.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.

Si la función no se ejecuta correctamente, el valor devuelto es un código de error distinto de cero definido en Winerror.h. Puede usar la función FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción genérica del error.

Comentarios

Cuando se abre una clave mediante esta función, se realizan transacciones en las operaciones posteriores de la clave. Si se realiza una operación sin transacciones en la clave antes de confirmar la transacción, la transacción se revierte. Después de confirmar o revertir una transacción, debe volver a abrir la clave mediante la función RegCreateKeyTransacted o RegOpenKeyTransacted con un identificador de transacción activo para realizar transacciones adicionales. Para obtener más información sobre las transacciones, vea Administrador de transacciones de kernel.

Tenga en cuenta que las operaciones posteriores en subclaves de esta clave no se realizan automáticamente. Por lo tanto, la función RegDeleteKeyEx no realiza una operación de eliminación de transacciones. En su lugar, use la función RegDeleteKeyTransacted para realizar una operación de eliminación de transacciones.

A diferencia de la función RegCreateKeyTransacted , la función RegOpenKeyTransacted no crea la clave especificada si la clave no existe en el Registro.

Si el servicio o la aplicación suplantan a distintos usuarios, no use esta función con HKEY_CURRENT_USER. En su lugar, llame a la función RegOpenCurrentUser .

Si la clave devuelta en phkResult es una clave del Registro predefinida, no se incluye en la transacción proporcionada.

Una sola clave del Registro solo se puede abrir 65 534 veces. Al intentar la operación abierta 65.535, se produce un error en esta función con ERROR_NO_SYSTEM_RESOURCES.

Nota

El encabezado winreg.h define RegOpenKeyTransacted como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winreg.h (incluye Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

RegCloseKey

RegCreateKeyTransacted

RegDeleteKeyTransacted

Funciones del Registro

Introducción al Registro