Compartir a través de


Función RegCreateKeyW (winreg.h)

Crea la clave del Registro especificada. Si la clave ya existe en el Registro, la función la abre.

Nota Esta función solo se proporciona para la compatibilidad con versiones de 16 bits de Windows. Las aplicaciones deben usar la función RegCreateKeyEx . Sin embargo, 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 en lugar de las funciones del Registro.
 

Sintaxis

LSTATUS RegCreateKeyW(
  [in]           HKEY    hKey,
  [in, optional] LPCWSTR lpSubKey,
  [out]          PHKEY   phkResult
);

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 clave 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 crean claves si su descriptor de seguridad lo permite.

La función RegCreateKeyEx o RegOpenKeyEx devuelve este identificador, o bien puede ser una de las siguientes claves predefinidas:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

[in, optional] lpSubKey

El nombre de una clave que esta función abre o crea. Esta clave debe ser una subclave de la clave identificada por el parámetro hKey .

Para obtener más información sobre los nombres de clave, vea Estructura del Registro.

Si hKey es una de las claves predefinidas, lpSubKey puede ser NULL. En ese caso, phkResult recibe el mismo identificador hKey pasado a la función.

[out] phkResult

Puntero que apunta 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 una vez que haya terminado de usar el identificador .

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

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 su servicio o aplicación suplanta a distintos usuarios, no use esta función con HKEY_CURRENT_USER. En su lugar, llame a la función RegOpenCurrentUser .

La función RegCreateKey crea todas las claves que faltan en la ruta de acceso especificada. Una aplicación puede aprovechar este comportamiento para crear varias claves a la vez. Por ejemplo, una aplicación puede crear una subclave de cuatro niveles en profundidad al mismo tiempo que las tres subclaves anteriores especificando una cadena del siguiente formulario para el parámetro lpSubKey :

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.

Nota

El encabezado winreg.h define RegCreateKey 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en 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 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winreg.h (incluya Windows.h)
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

RegCloseKey

RegCreateKeyEx

RegDeleteKey

RegOpenKeyEx

Funciones del Registro

Introducción al Registro