Función SetupDiCreateDevRegKeyA (setupapi.h)

La función SetupDiCreateDevRegKey crea una clave del Registro para la información de configuración específica del dispositivo y devuelve un identificador a la clave.

Sintaxis

WINSETUPAPI HKEY SetupDiCreateDevRegKeyA(
  [in]           HDEVINFO         DeviceInfoSet,
  [in]           PSP_DEVINFO_DATA DeviceInfoData,
  [in]           DWORD            Scope,
  [in]           DWORD            HwProfile,
  [in]           DWORD            KeyType,
  [in, optional] HINF             InfHandle,
  [in, optional] PCSTR            InfSectionName
);

Parámetros

[in] DeviceInfoSet

Identificador de un conjunto de información de dispositivo que contiene un elemento de información del dispositivo que representa el dispositivo para el que se va a crear una clave del Registro.

[in] DeviceInfoData

Puntero a una estructura de SP_DEVINFO_DATA que especifica el elemento de información del dispositivo en DeviceInfoSet.

[in] Scope

Ámbito de la clave del Registro que se va a crear. El ámbito determina dónde se almacena la información. La clave creada puede ser específica del perfil de hardware o global. Puede ser uno de los siguientes valores:

DICS_FLAG_GLOBAL

Cree una clave para almacenar información de configuración global. Esta información no es específica de un perfil de hardware determinado. En los sistemas operativos basados en NT, esto crea una clave que se basa en HKEY_LOCAL_MACHINE. La clave exacta abierta depende del valor del parámetro KeyType .

DICS_FLAG_CONFIGSPECIFIC

Cree una clave para almacenar información de configuración específica del perfil de hardware. Esta clave se basa en una de las ramas específicas del perfil de hardware, en lugar de HKEY_LOCAL_MACHINE.

[in] HwProfile

Perfil de hardware para el que se va a crear una clave si HwProfileFlags está establecido en SPDICS_FLAG_CONFIGSPECIFIC. Si HwProfile es 0, se crea la clave del perfil de hardware actual. Si HwProfileFlags es SPDICS_FLAG_GLOBAL, se omite HwProfile .

[in] KeyType

Tipo de clave de almacenamiento del Registro que se va a crear. Puede ser uno de los siguientes valores:

DIREG_DEV

Cree una clave de hardware para el dispositivo.

DIREG_DRV

Cree una clave de software para el dispositivo.

[in, optional] InfHandle

Identificador de un archivo INF abierto que contiene una sección INF DDInstall que se va a ejecutar para la clave recién creada. Este parámetro es opcional y puede ser NULL. Si se especifica este parámetro, también se debe especificar InfSectionName .

[in, optional] InfSectionName

Nombre de una sección INF DDInstall del archivo INF especificado por InfHandle. Esta sección se ejecuta para la clave recién creada. Este parámetro es opcional y puede ser NULL. Si se especifica este parámetro, también se debe especificar InfHandle .

Valor devuelto

Si SetupDiCreateDevRegKey se realiza correctamente, la función devuelve un identificador a la clave del Registro especificada en la que se pueden almacenar y recuperar datos de configuración específicos del dispositivo. Si se produce un error en SetupDiCreateDevRegKey , la función devuelve INVALID_HANDLE_VALUE. Llame a GetLastError para obtener información extendida sobre el error.

Comentarios

El autor de la llamada de SetupDiCreateDevRegKey debe ser miembro del grupo Administradores.

Cierre el identificador devuelto desde SetupDiCreateDevRegKey llamando a RegCloseKey.

Si la clave especificada ya existe, SetupDiCreateDevRegKey devuelve un identificador a esa clave. De lo contrario, SetupDiCreateDevRegKey crea la clave especificada y devuelve un identificador a la nueva clave. Para Windows Server 2003 y versiones posteriores de Windows, el identificador de clave solo tiene acceso KEY_READ y KEY_WRITE. En el caso de las versiones anteriores de Windows, este identificador tiene KEY_ALL_ACCESS acceso.

La instancia de dispositivo especificada debe registrarse antes de llamar a SetupDiCreateDevRegKey . Sin embargo, tenga en cuenta que el sistema operativo registra automáticamente las instancias de dispositivo PnP. Para obtener información sobre cómo registrar instancias de dispositivo que no son PnP, consulte SetupDiRegisterDeviceInfo.

Para las instalaciones que usan archivos de diseño (especificados por la entrada LayoutFile en una sección Versión inf), el archivo de diseño debe abrirse mediante una llamada a SetupOpenAppendInfFile (que se describe en la documentación de Microsoft Windows SDK) antes de llamar a SetupDiCreateDevRegKey.

Si el conjunto de información del dispositivo proporcionado contiene elementos de información del dispositivo para un sistema remoto y también se especifican InfHandle e InfSectionName , se producirá un error en la solicitud de creación y se devolverá una llamada posterior a GetLastError ERROR_REMOTE_REQUEST_UNSUPPORTED.

Nota

El encabezado setupapi.h define SetupDiCreateDevRegKey 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 Disponible en Microsoft Windows 2000 y versiones posteriores de Windows.
Plataforma de destino Escritorio
Encabezado setupapi.h (incluya Setupapi.h)
Library Setupapi.lib

Consulte también

SetupDiCreateDeviceInfo

SetupDiGetHwProfileList

SetupDiOpenDevRegKey

SetupDiRegisterDeviceInfo