SetupDiSetClassPropertyW 函数 (setupapi.h)
SetupDiSetClassProperty 函数为设备设置类或设备接口类设置类属性。
语法
WINSETUPAPI BOOL SetupDiSetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, optional] const PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[in] DWORD Flags
);
参数
[in] ClassGuid
指向 GUID 的指针,该 GUID 标识要为其设置设备属性的设备设置类或设备接口类。 有关如何指定类类型的信息,请参阅 Flags 参数。
[in] PropertyKey
指向 DEVPROPKEY 结构的指针,该结构表示要设置的设备类属性的设备属性键。
[in] PropertyType
一个 DEVPROPTYPE 类型的值,表示设备类属性的属性数据类型标识符。 有关 property-data-type 标识符的详细信息,请参阅本主题后面的 “备注 ”部分。
[in, optional] PropertyBuffer
指向缓冲区的指针,该缓冲区包含设备类的属性值。 如果要删除 属性或数据,则必须将此指针设置为 NULL,并且 PropertyBufferSize 必须设置为零。 有关属性数据的详细信息,请参阅本主题后面的 “备注 ”部分。
[in] PropertyBufferSize
PropertyBuffer 缓冲区的大小(以字节为单位)。 如果 PropertyBuffer 设置为 NULL, 则 PropertyBufferSize 必须设置为零。
[in] Flags
以下值之一,指定类是设备安装类还是设备接口类:
DICLASSPROP_INSTALLER
ClassGuid 指定设备安装类。 此标志不能与 DICLASSPROP_INTERFACE 一起使用。
DICLASSPROP_INTERFACE
ClassGuid 指定设备接口类。 此标志不能与 DICLASSPROP_INSTALLER 一起使用。
返回值
如果成功,SetupDiSetClassProperty 将返回 TRUE 。 否则,它将返回 FALSE,并且可以通过调用 GetLastError 来检索记录的错误。
下表包含此函数可能记录的一些更常见的错误代码。
返回代码 | 说明 |
---|---|
|
Flags 的值无效。 |
|
由 ClassGuid 指定的设备安装类无效。 仅当指定了DICLASSPROP_INSTALLER标志时,才会发生此错误。 |
|
设备接口引用字符串无效。 仅当指定了DICLASSPROP_INTERFACE标志时,才会发生此错误。 |
|
PropertyKey 提供的属性键无效。 |
|
未指定的内部数据值无效。 如果 ClassGuid 值不是有效的 GUID,或者属性值与 PropertyType 指定的属性类型不一致,则可能会记录此错误。 |
|
用户缓冲区无效。 一种可能性是 PropertyBuffer 为 NULL,PropertyBufferSize 不是零。 |
|
ClassGuid 指定的设备接口类不存在。 仅当指定了DICLASSPROP_INTERFACE标志时,才会发生此错误。 |
|
传递给系统调用的内部数据缓冲区太小。 |
|
系统内存不足,无法完成操作。 |
|
找不到未指定的项。 一种可能性是要删除的属性不存在。 |
|
调用方没有管理员权限。 |
注解
SetupDiSetClassProperty 是 统一设备属性模型的一部分。
SetupAPI 仅支持 SetupDiSetClassProperty 的 Unicode 版本。
SetupDiSetClassProperty 的调用方必须是管理员组的成员才能设置设备接口属性。
SetupDiSetClassProperty 对属性数据类型标识符和属性值强制执行要求。
若要获取表示在本地计算机上为设备类设置的设备属性的设备属性键,请调用 SetupDiGetClassPropertyKeys。
若要检索本地计算机上的设备类属性,请调用 SetupDiGetClassProperty,若要检索远程计算机上的设备类属性,请调用 SetupDiGetClassPropertyEx。
若要在远程计算机上设置设备类属性,请调用 SetupDiSetClassPropertyEx。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | Desktop 要通用,请调用 CM_Set_Class_Property |
标头 | setupapi.h (包括 Setupapi.h) |
Library | Setupapi.lib |