SetupDiSetDeviceInterfacePropertyW 函数 (setupapi.h)

SetupDiSetDeviceInterfaceProperty 函数设置设备接口的设备属性。

语法

WINSETUPAPI BOOL SetupDiSetDeviceInterfacePropertyW(
  [in]           HDEVINFO                  DeviceInfoSet,
  [in]           PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]           const DEVPROPKEY          *PropertyKey,
  [in]           DEVPROPTYPE               PropertyType,
  [in, optional] const PBYTE               PropertyBuffer,
  [in]           DWORD                     PropertyBufferSize,
  [in]           DWORD                     Flags
);

参数

[in] DeviceInfoSet

包含要为其设置设备接口属性的设备接口的设备 信息集 的句柄。

[in] DeviceInterfaceData

指向 SP_DEVICE_INTERFACE_DATA 结构的指针,该结构表示要为其设置设备接口属性的设备接口。

[in] PropertyKey

指向 DEVPROPKEY 结构的指针,该结构表示要设置的设备接口属性的设备属性键。

[in] PropertyType

一个 DEVPROPTYPE 类型的值,表示要设置的设备接口属性的属性数据类型标识符。 有关 property-data-type 标识符的详细信息,请参阅本主题后面的 “备注 ”部分。

[in, optional] PropertyBuffer

指向包含设备接口属性值的缓冲区的指针。 如果要删除 属性或接口值,则必须将此指针设置为 NULL,并且 PropertyBufferSize 必须设置为零。 有关属性值数据的详细信息,请参阅本主题后面的 “备注 ”部分。

[in] PropertyBufferSize

PropertyBuffer 缓冲区的大小(以字节为单位)。 属性缓冲区大小必须与 PropertyType 提供的属性数据类型标识符保持一致。 如果 PropertyBuffer 设置为 NULL则 PropertyBufferSize 必须设置为零。

[in] Flags

必须设置为零。

返回值

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

下表包含此函数可能记录的一些更常见的错误代码。

返回代码 说明
ERROR_INVALID_FLAGS
Flags 的值不为零。
ERROR_INVALID_HANDLE
DevInfoSet 指定的设备信息集无效。
ERROR_INVALID_PARAMETER
提供的参数无效。 一种可能性是 DeviceInterfaceData 指定的设备接口无效。
ERROR_INVALID_REG_PROPERTY
PropertyKey 提供的属性键无效。
ERROR_INVALID_DATA
未指定的数据值无效。 如果设备接口的符号链接名称无效或属性数据类型标识符无效,则可能会记录此错误。
ERROR_INVALID_USER_BUFFER
用户缓冲区无效。 一种可能性是 PropertyBufferNULL而 PropertBufferSize 不为零。
ERROR_NO_SUCH_DEVICE_INTERFACE
DeviceInterfaceData 指定的设备 接口不存在。
ERROR_INSUFFICIENT_BUFFER
传递给系统调用的内部数据缓冲区太小。
ERROR_NOT_ENOUGH_MEMORY
系统内存不足,无法完成操作。
ERROR_NOT_FOUND
找不到未指定的内部元素。 一种可能性是要删除的属性不存在。
ERROR_ACCESS_DENIED
调用方没有管理员权限。

注解

SetupDiSetDeviceInterfaceProperty统一设备属性模型的一部分。

SetupAPI 仅支持 SetupDiSetDeviceInterfaceProperty 的 Unicode 版本。

SetupDiSetDeviceInterfaceProperty 的调用方必须是管理员组的成员才能设置设备接口属性。

SetupDiSetDeviceInterfaceProperty 对属性数据类型标识符和属性值强制执行要求。

若要获取表示为设备接口设置的设备属性的设备属性键,请调用 SetupDiGetDeviceInterfacePropertyKeys

若要检索设备接口属性,请调用 SetupDiGetDeviceInterfaceProperty

要求

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

另请参阅

SetupDiGetDeviceInterfaceProperty

SetupDiGetDeviceInterfacePropertyKeys