SetupDiOpenDevRegKey 函数 (setupapi.h)

SetupDiOpenDevRegKey 函数为特定于设备的配置信息打开注册表项。

语法

WINSETUPAPI HKEY SetupDiOpenDevRegKey(
  [in] HDEVINFO         DeviceInfoSet,
  [in] PSP_DEVINFO_DATA DeviceInfoData,
  [in] DWORD            Scope,
  [in] DWORD            HwProfile,
  [in] DWORD            KeyType,
  [in] REGSAM           samDesired
);

参数

[in] DeviceInfoSet

设备信息集的句柄,其中包含表示要为其打开注册表项的设备的设备信息元素。

[in] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。

[in] Scope

要打开的注册表项的范围。 范围确定信息的存储位置。 范围可以是全局的,也可以特定于硬件配置文件。 范围由以下值之一指定:

DICS_FLAG_GLOBAL

打开密钥以存储全局配置信息。 此信息并非特定于特定硬件配置文件。 这会打开根位于 HKEY_LOCAL_MACHINE 的密钥 打开的确切键取决于 KeyType 参数的值。

DICS_FLAG_CONFIGSPECIFIC

打开密钥以存储特定于硬件配置文件的配置信息。 此密钥根植于硬件配置文件特定的分支之一,而不是 HKEY_LOCAL_MACHINE。 打开的确切键取决于 KeyType 参数的值。

[in] HwProfile

硬件配置文件值,设置如下:

  • 如果 Scope 设置为 DICS_FLAG_CONFIGSPECIFIC, 则 HwProfile 将指定要打开的密钥的硬件配置文件。
  • 如果 HwProfile 为 0,则会打开当前硬件配置文件的密钥。
  • 如果DICS_FLAG_GLOBAL Scope ,则忽略 HwProfile

[in] KeyType

要打开的注册表存储密钥的类型,可以是以下值之一:

DIREG_DEV

打开设备 的硬件密钥

DIREG_DRV

打开设备的 软件密钥

有关设备的硬件和软件密钥的详细信息,请参阅 设备和驱动程序的注册表树和密钥

[in] samDesired

请求的密钥所需的注册表安全访问。 有关 REGSAM 类型的注册表安全访问值的信息,请参阅Microsoft Windows SDK文档。

返回值

如果函数成功,它将返回打开的注册表项的句柄,可在其中存储/检索有关此设备实例的专用配置数据。

如果函数失败,它将返回INVALID_HANDLE_VALUE。 要获得更多的错误信息,请调用 GetLastError。

注解

根据 samDesired 参数中传递的值,此函数的调用方可能需要成为 Administrators 组的成员。

通过调用 RegCloseKey 关闭从此函数返回的句柄。

在调用此函数之前,必须注册指定的设备实例。 但是,请注意,操作系统会自动注册 PnP 设备实例。 有关如何注册非 PnP 设备实例的信息,请参阅 SetupDiRegisterDeviceInfo

要求

   
最低受支持的客户端 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 Desktop 要通用,请调用 CM_Open_DevNode_Key
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib
DLL Setupapi.dll
API 集 Windows 10版本 10.0.1439 (3 中引入的 ext-ms-win-setupapi-classinstallers-l1-1-2)

另请参阅

SetupDiCreateDevRegKey

SetupDiCreateDeviceInfo

SetupDiGetHwProfileList

SetupDiRegisterDeviceInfo