SetupDiGetCustomDevicePropertyW 函数 (setupapi.h)

SetupDiGetCustomDeviceProperty 函数从注册表中检索指定的自定义设备属性。

语法

WINSETUPAPI BOOL SetupDiGetCustomDevicePropertyW(
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [in]            PCWSTR           CustomPropertyName,
  [in]            DWORD            Flags,
  [out, optional] PDWORD           PropertyRegDataType,
  [out]           PBYTE            PropertyBuffer,
  [in]            DWORD            PropertyBufferSize,
  [out, optional] PDWORD           RequiredSize
);

参数

[in] DeviceInfoSet

设备信息的句柄集,其中包含表示要为其检索自定义设备属性的设备的设备信息元素。

[in] DeviceInfoData

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

[in] CustomPropertyName

表示自定义属性的注册表值名称。

[in] Flags

一个标志值,指示应如何返回请求的信息。 该标志可以是零个或下列标志之一:

DICUSTOMDEVPROP_MERGE_MULTISZ

如果设置,该函数将检索设备实例特定的属性值和特定于硬件 ID 的属性值,并作为REG_MULTI_SZ类型字符串连接。 (有关详细信息,请参阅本参考页上 备注 部分。

[out, optional] PropertyRegDataType

指向 DWORD 类型的变量的指针,该变量接收检索到的属性的数据类型。 数据类型指定为表示注册表数据类型的REG_前缀常量之一。 此参数是可选的,可以 NULL

[out] PropertyBuffer

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

[in] PropertyBufferSize

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

[out, optional] RequiredSize

指向 DWORD 类型的变量的指针,该变量接收请求的信息所需的缓冲区大小(以字节为单位)。 此参数是可选的,可以 NULL。 如果指定此参数,SetupDiGetCustomDeviceProperty 返回所需的大小,无论 PropertyBuffer 缓冲区是否足够大,都足以接收请求的信息。

返回值

如果操作成功,SetupDiGetCustomDeviceProperty 返回 true。 否则,函数返回 FALSE,可以通过调用 getLastError来检索记录的错误。 如果 PropertyBuffer 缓冲区不够大,无法接收请求的信息,SetupDiGetCustomDeviceProperty 返回 FALSE,并且后续调用 getLastError 将返回ERROR_INSUFFICIENT_BUFFER。

言论

SetupDiGetCustomDeviceProperty 检索与单个设备实例关联的设备属性,或者检索与特定硬件 ID 匹配的所有设备。 (有关硬件 ID 的信息,请参阅 设备标识字符串)。

供应商可以使用 INF DDInstall.HW 节中的 INF AddReg 指令 设置设备实例的属性, 并指定 HKR 注册表根。

只有系统可以设置硬件 ID 的属性。 系统为某些硬件 ID 提供“图标”属性。

该函数首先检查指定的设备实例是否存在指定的属性。 如果是这样,则返回该属性的值。 如果不是,该函数将检查是否存在与指定设备实例的硬件 ID 匹配的所有设备的属性。 如果是这样,则返回该属性的值。 如果在 标志中设置DICUSTOMDEVPROP_MERGE_MULTISZ,则函数将返回与设备实例和硬件 ID 关联的属性值(如果两者都存在)。

注意

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

要求

要求 价值
最低支持的客户端 在 Windows XP 和更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Setupapi.lib
DLL Setupapi.dll

另请参阅

SetupDiGetClassRegistryProperty

SetupDiGetDeviceRegistryProperty

SetupDiOpenDevRegKey

SetupDiSetClassRegistryProperty

SetupDiSetDeviceRegistryProperty