SetupDiGetClassRegistryPropertyA 函数 (setupapi.h)

SetupDiGetClassRegistryProperty 函数从注册表中检索指定设备安装程序类的属性。

语法

WINSETUPAPI BOOL SetupDiGetClassRegistryPropertyA(
  [in]            const GUID *ClassGuid,
  [in]            DWORD      Property,
  [out, optional] PDWORD     PropertyRegDataType,
  [out]           PBYTE      PropertyBuffer,
  [in]            DWORD      PropertyBufferSize,
  [out, optional] PDWORD     RequiredSize,
  [in, optional]  PCSTR      MachineName,
                  PVOID      Reserved
);

参数

[in] ClassGuid

指向 GUID 的指针,该 GUID 表示要为其检索属性的设备安装类。

[in] Property

一个 值,该值标识要检索的属性。 这必须是以下值之一:

SPCRP_CHARACTERISTICS

函数返回指示 类的设备特征的标志。 有关特征标志的列表,请参阅 IoCreateDeviceDeviceCharacteristics 参数。

SPCRP_DEVTYPE

函数返回表示类的设备类型的 DWORD 值。 有关详细信息,请参阅 指定设备类型

SPCRP_EXCLUSIVE

函数返回一个 DWORD 值,该值指示用户是否可以获得此类设备的独占访问权限。 如果允许独占访问,则返回的值为 1,否则返回的值为零。

SPCRP_LOWERFILTERS

(Windows Vista 及更高版本) 函数返回为设备安装程序类安装的较低筛选器驱动程序的服务名称REG_MULTI_SZ列表。

SPCRP_SECURITY

函数以自相对格式返回设备的安全描述符, (Microsoft Windows SDK文档) 中所述SECURITY_DESCRIPTOR结构。

SPCRP_SECURITY_SDS

函数以文本字符串的形式返回设备的安全描述符。 有关安全描述符字符串的信息,请参阅 安全描述符定义语言 (Windows) 。 有关安全描述符字符串的格式的信息,请参阅安全描述符定义语言 (Windows) 。

SPCRP_UPPERFILTERS

(Windows Vista 及更高版本) 函数返回为设备安装程序类安装的上层筛选器驱动程序的服务名称REG_MULTI_SZ列表。

[out, optional] PropertyRegDataType

指向类型为 DWORD 的变量的指针,该变量接收属性数据类型作为REG_前缀注册表数据类型之一。 此参数是可选的,可以为 NULL。 如果此参数为 NULL则 SetupDiGetClassRegistryProperty 不会返回数据类型。

[out] PropertyBuffer

指向接收所请求属性的缓冲区的指针。

[in] PropertyBufferSize

PropertyBuffer 缓冲区的大小(以字节为单位)。

[out, optional] RequiredSize

指向 DWORD 类型的变量的指针,该变量接收 PropertyBuffer 缓冲区的所需大小(以字节为单位)。 如果 PropertyBuffer 缓冲区太小,而 RequiredSize 不为 NULL,则函数会将 RequiredSize 设置为接收请求的属性所需的最小缓冲区大小。

[in, optional] MachineName

指向以 NULL 结尾的字符串的指针,该字符串包含要从中检索指定设备类属性的远程系统的名称。 此参数是可选的,可以为 NULL。 如果此参数为 NULL,则从本地系统检索该属性。

注意

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

Reserved

保留的 必须为 NULL

返回值

如果成功,函数将返回 TRUE 。 否则,它将返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。

注解

注意

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

要求

要求
最低受支持的客户端 在 Windows XP 和更高版本的 Windows 中可用。
目标平台 桌面对于通用,请调用 CM_Get_Class_Registry_Property
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib

另请参阅

SetupDiGetDeviceRegistryProperty

SetupDiSetClassRegistryProperty

SetupDiSetDeviceRegistryProperty