SetupDiCreateDevRegKey

HKEY
SetupDiCreateDevRegKey(
IN HDEVINFO DeviceInfoSet,
IN PSP_DEVINFO_DATA DeviceInfoData,
IN DWORD Scope,
IN DWORD HwProfile,
IN DWORD
KeyType,
IN HINF InfHandle,    /* optional */
IN PCTSTR InfSectionName    /* optional */
);

SetupDiCreateDevRegKey creates a registry storage key for device-specific configuration information and returns a handle to the key.

Parameters

DeviceInfoSet

Supplies a handle to the device information set containing information about the device instance whose registry configuration storage key is to be created.

DeviceInfoData

Supplies a pointer to an SP_DEVINFO_DATA structure indicating the device instance for which to create the registry key.

Scope

Specifies the scope of the registry key to be created. The scope determines where the information is stored. The key created can be global or hardware profile-specific. Can be one of the following values:

DICS_FLAG_GLOBAL

Create a key to store global configuration information. On Windows NT this opens the key associated with the device instance that has the form:

HKLM\SYSTEM\CurrentControlSet\Control\Class\ClassGUID\InstanceID.

where classGUID is the GUID representing the device’s class and InstanceID is a base-10, four-digit ordinal representing this device instance within the list of device instances for this class.

On Windows 95 the key has the following form:

HKLM\SYSTEM\CurrentControlSet\Services\Class\ClassName\InstanceID.

where ClassName is the name representing the device’s class and InstanceID is a base-10, four-digit ordinal representing this device instance within the list of device instances for this class.

DICS_FLAG_CONFIGSPECIFIC

Create a key to store hardware profile-specific configuration information. This key has a path identical to the one created when SPDICS_FLAG_GLOBAL is set, except that it is rooted at one of the hardware-profile specific branches, instead of HKEY_LOCAL_MACHINE.

HwProfile

Specifies the hardware profile for which to create a key if HwProfileFlags is set to SPDICS_FLAG_CONFIGSPECIFIC. If HwProfile is 0, the key for the current hardware profile is created. If HwProfileFlags is SPDICS_FLAG_GLOBAL, HwProfile is ignored.

KeyType

Specifies the type of registry storage key to create. Can be one of the following values:

DIREG_DEV

Create a hardware registry key for the device. This is the key for storage of driver-independent configuration information. This key is in the Device Instance key of the Enum branch.

DIREG_DRV

Create a software, or driver, registry key for the device. This key is located in the Class branch.

InfHandle

Supplies the handle of an open INF file that contains an Install section to be executed for the newly-created key. If this parameter is specified, InfSectionName must be specified as well.

InfSectionName

Supplies the name of an Install section in the INF file specified by InfHandle. This section is executed for the newly created key. If this parameter is specified, InfHandle must be specified as well.

Return Value

If the function is successful, it returns a handle to the newly-created registry key where private configuration data pertaining to this device instance can be stored/retrieved. If the function fails, it returns INVALID_HANDLE_VALUE. Call GetLastError to get extended error information.

Comments

Close the handle returned from this function by calling RegCloseKey.

The specified device instance must be registered before calling this function. After creating the device instance with SetupDiCreateDeviceInfo, call SetupDiRegisterDeviceInfo to register it.

See Also

SetupDiCreateDeviceInfo, SetupDiGetHwProfileList, SetupDiOpenDevRegKey, SetupDiRegisterDeviceInfo