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)
Setupapi.lib

另请参阅

SetupDiCreateDeviceInterfaceRegKey

SetupDiOpenDevRegKey