访问自定义设置

在 Windows Vista 和更高版本的 Windows 中, 统一设备属性模型 支持使用 属性键 创建和访问自定义设备属性。 有关详细信息,请参阅 创建自定义设备属性

在 Windows Server 2003、Windows XP 和 Windows 2000 上,可以在系统提供的注册表项下为设备相关的组件创建自定义注册表项值。 以下列表包含 SetupAPI 函数,用于调用每种类型的设备组件以打开相应的系统提供的注册表项。 打开系统定义的注册表项后,应用程序和安装程序可以调用基于 Windows 的注册表函数来修改打开的注册表项下的自定义注册表项值。

  • 设备实例硬件属性的自定义注册表项值应位于设备实例的硬件注册表项下。 调用 SetupDiOpenDevRegKey 并在 Flags 参数中提供DIREG_DEV,以检索设备实例的硬件密钥的句柄。 可以通过调用 SetupDiGetCustomDeviceProperty 函数来检索在设备实例的硬件注册表项下设置的自定义注册表项值。

  • 设备实例软件属性的自定义注册表项值应位于设备实例的软件注册表项下。 调用 SetupDiOpenDevRegKey 并在 Flags 参数中提供DIREG_DRV,以检索设备实例的软件密钥的句柄。

  • 设备安装程序类属性的自定义注册表项值应位于设备安装程序类注册表项下。 调用 SetupDiOpenClassRegKeyEx 并提供 Flags 参数中的DIOCR_INSTALLER,以检索设备安装类注册表项的句柄。

  • 设备接口类属性的自定义注册表项应位于设备接口类注册表项下。 调用 SetupDiOpenClassRegKeyEx 并提供 Flags 参数中的DIOCR_INTERFACE,以检索设备接口类注册表项的句柄。

  • 设备接口属性的自定义注册表项值应位于设备接口注册表项下。 调用 SetupDiOpenDeviceInterfaceRegKey 以检索设备接口类注册表项的句柄。

检索注册表项的句柄后,在调用 RegQueryValueExRegSetValueEx 时提供句柄,以检索或设置与自定义设备属性对应的自定义注册表项值。

不再需要访问注册表项后,调用 RegCloseKey 函数以关闭注册表项。