SetupDiOpenDevRegKey

HKEY
    SetupDiOpenDevRegKey(
        IN HDEVINFO  DeviceInfoSet,
        IN PSP_DEVINFO_DATA  DeviceInfoData,
        IN DWORD
  Scope,
        IN DWORD  HwProfile,
        IN DWORD
  KeyType,
        IN REGSAM  samDesired
        );

SetupDiOpenDevRegKey opens 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 opened.
DeviceInfoData
Supplies a pointer to an SP_DEVINFO_DATA structure indicating the device instance for which to open the registry key.
Scope
Specifies the scope of the registry key to open. The scope determines where the information is stored. The key opened can be global or hardware profile-specific. Can be one of the following values:
DICS_FLAG_GLOBAL
Open 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
Open a key to store hardware profile-specific configuration information. This key has a path identical to the one opened by SPDICS_FLAG_GLOBAL, except that it is rooted at one of the hardware-profile specific branches, instead of HKEY_LOCAL_MACHINE.
HwProfile
Specifies the hardware profile to open a key for, if Scope is set to SPDICS_FLAG_CONFIGSPECIFIC. If HwProfile is 0, the key for the current hardware profile is opened. If Scope is SPDICS_FLAG_GLOBAL, this parameter is ignored.
KeyType
Specifies the type of registry storage key to open. Can be one of the following values:
DIREG_DEV
Open 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
Open a software, or driver, registry key for the device. This key is located in the Class branch.
samDesired
Specifies the access you require for this key.
Return Value

If the function is successful, it returns a handle to an opened registry key where private configuration data pertaining to this device instance can be stored/retrieved.

If the function fails, it returns INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

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, SetupDiCreateDevRegKey, SetupDiGetHwProfileList, SetupDiRegisterDeviceInfo