Función RegCreateKeyExA (winreg.h)
Crea la clave del Registro especificada. Si la clave ya existe, la función la abre. Tenga en cuenta que los nombres de clave no distinguen mayúsculas de minúsculas.
Para realizar operaciones de registro de transacciones en una clave, llame a la función RegCreateKeyTransacted.
Las aplicaciones que realicen copias de seguridad o restaure el estado del sistema, incluidos los archivos del sistema y los subárboles del registro, deben usar el servicio de instantáneas de volumen de en lugar de las funciones del Registro.
Sintaxis
LSTATUS RegCreateKeyExA(
[in] HKEY hKey,
[in] LPCSTR lpSubKey,
DWORD Reserved,
[in, optional] LPSTR lpClass,
[in] DWORD dwOptions,
[in] REGSAM samDesired,
[in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[out] PHKEY phkResult,
[out, optional] LPDWORD lpdwDisposition
);
Parámetros
[in] hKey
Identificador de una clave del Registro abierta. El proceso de llamada debe tener KEY_CREATE_SUB_KEY acceso a la clave. Para obtener más información, consulte Derechos de acceso y seguridad de claves del Registro.
El acceso para la creación de claves se comprueba con el descriptor de seguridad de la clave del Registro, no con la máscara de acceso especificada cuando se obtuvo el identificador. Por lo tanto, incluso si hKey se abrió con un samDesired de KEY_READ, se puede usar en operaciones que modifiquen el Registro si están permitidos por su descriptor de seguridad.
Este identificador lo devuelve la función RegCreateKeyEx o regOpenKeyEx o puede ser una de las siguientes claves predefinidas:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
[in] lpSubKey
Nombre de una subclave que esta función abre o crea. La subclave especificada debe ser una subclave de la clave identificada por el parámetro hKey; puede ser de hasta 32 niveles en profundidad en el árbol del registro. Para obtener más información sobre los nombres de clave, vea Structure of the Registry.
Si lpSubKey es un puntero a una cadena vacía, phkResult recibe un nuevo identificador de la clave especificada por hKey.
Este parámetro no puede ser NULL.
Reserved
Este parámetro está reservado y debe ser cero.
[in, optional] lpClass
El tipo de clase definido por el usuario de esta clave. Este parámetro puede omitirse. Este parámetro puede ser null.
[in] dwOptions
Este parámetro puede ser uno de los siguientes valores.
Valor | Significado |
---|---|
|
Si se establece esta marca, la función omite el parámetro samDesired |
|
Nota vínculos simbólicos del Registro solo deben usarse para la compatibilidad de aplicaciones cuando absolutamente necesario.
|
|
Esta clave no es volátil; este es el valor predeterminado. La información se almacena en un archivo y se conserva cuando se reinicia el sistema. La función RegSaveKey guarda las claves que no son volátiles. |
|
Todas las claves creadas por la función son volátiles. La información se almacena en memoria y no se conserva cuando se descarga el subárbol del Registro correspondiente. Para HKEY_LOCAL_MACHINE, esto solo ocurre cuando el sistema inicia un apagado completo. Para las claves del Registro cargadas por la función
Nota En un apagado seleccionado por el usuario, un apagado de inicio rápido es el comportamiento predeterminado del sistema.
|
[in] samDesired
Máscara que especifica los derechos de acceso para la clave que se va a crear. Para obtener más información, consulte Derechos de acceso y seguridad de claves del Registro.
[in, optional] lpSecurityAttributes
Puntero a una estructura de SECURITY_ATTRIBUTES que determina si los procesos secundarios pueden heredar el identificador devuelto. Si lpSecurityAttributes es NULL, no se puede heredar el identificador.
El lpSecurityDescriptor miembro de la estructura especifica un descriptor de seguridad para la nueva clave. Si lpSecurityAttributes es NULL, la clave obtiene un descriptor de seguridad predeterminado. Las ACL de un descriptor de seguridad predeterminado para una clave se heredan de su clave principal directa.
[out] phkResult
Puntero a una variable que recibe un identificador de la clave abierta o creada. Si la clave no es una de las claves del Registro predefinidas, llame a la función RegCloseKey después de haber terminado de usar el identificador .
[out, optional] lpdwDisposition
Puntero a una variable que recibe uno de los siguientes valores de disposición.
Valor | Significado |
---|---|
|
La clave no existía y se creó. |
|
La clave existía y simplemente se abrió sin cambiarse. |
Si lpdwDisposition es NULL, no se devuelve información de eliminación.
Valor devuelto
Si la función se ejecuta correctamente, se ERROR_SUCCESS el valor devuelto.
Si se produce un error en la función, el valor devuelto es un código de error distinto de cero definido en Winerror.h. Puede usar la función
Observaciones
La clave que crea la función regCreateKeyEx
La función regCreateKeyEx
subclave1\subclave2\subclave3\subclave4
Tenga en cuenta que este comportamiento dará lugar a la creación de claves no deseadas si una clave existente en la ruta de acceso se escribe incorrectamente.
Una aplicación no puede crear una clave que sea un elemento secundario directo de HKEY_USERS o HKEY_LOCAL_MACHINE. Una aplicación puede crear subclaves en niveles inferiores de los árboles de HKEY_USERS o HKEY_LOCAL_MACHINE.
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
Tenga en cuenta que las operaciones que acceden a determinadas claves del Registro se redirigen. Para obtener más información, vea de virtualización del Registro y datos de aplicación de 32 y 64 bits en el Registro.
Nota
El encabezado winreg.h define RegCreateKeyEx 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 Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winreg.h (incluya Windows.h) |
biblioteca de |
Advapi32.lib |
DLL de |
Advapi32.dll |
Consulte también
regSaveKey de
de información general del Registro de