SetupDiOpenClassRegKeyExA 函数 (setupapi.h)

SetupDiOpenClassRegKeyEx 函数将打开设备安装程序类注册表项、设备接口类注册表项或特定类的子项。 此函数在本地计算机或远程计算机上打开指定的密钥。

语法

WINSETUPAPI HKEY SetupDiOpenClassRegKeyExA(
  [in, optional] const GUID *ClassGuid,
  [in]           REGSAM     samDesired,
  [in]           DWORD      Flags,
  [in, optional] PCSTR      MachineName,
                 PVOID      Reserved
);

参数

[in, optional] ClassGuid

指向要打开其注册表项的类的 GUID 的指针。 此参数是可选的,可以为 NULL。 如果此参数为 NULL,则打开类树 (HKLM\SYSTEM\CurrentControlSet\Control\Class) 的根。

[in] samDesired

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

[in] Flags

要打开的注册表项的类型,由下列项之一指定:

DIOCR_INSTALLER

打开安装程序类密钥。 如果 ClassGuidNULL,请打开类安装程序分支的根键。

DIOCR_INTERFACE

打开接口类键。 如果 ClassGuidNULL,请打开接口类分支的根键。

[in, optional] MachineName

(可选)指向一个字符串,该字符串包含要打开指定密钥的远程计算机的名称。

注意

从Windows 8和Windows Server 2012开始,不支持使用此函数访问远程计算机,因为此功能已被删除。

Reserved

保留。 必须为 NULL

返回值

SetupDiOpenClassRegKeyEx 返回打开的注册表项的句柄,可在其中存储/检索有关此设置类的信息。

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

注解

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

如果注册表项尚不存在,SetupDiOpenClassRegKeyEx 不会创建注册表项。

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

注意

setupapi.h 标头将 SetupDiOpenClassRegKeyEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib

另请参阅

SetupDiCreateDeviceInterfaceRegKey

SetupDiOpenDevRegKey