SetupDiGetDeviceInterfacePropertyW 函数 (setupapi.h)
SetupDiGetDeviceInterfaceProperty 函数检索为设备接口设置的设备属性。
语法
WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[out] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize,
[in] DWORD Flags
);
参数
[in] DeviceInfoSet
包含要为其检索设备接口属性的设备接口的设备 信息集 的句柄。
[in] DeviceInterfaceData
指向 SP_DEVICE_INTERFACE_DATA 结构的指针,该结构表示要为其检索设备接口属性的设备接口。
[in] PropertyKey
指向 DEVPROPKEY 结构的指针,该结构表示要检索的设备接口属性的设备接口属性键。
[out] PropertyType
指向 DEVPROPTYPE 类型变量的指针,该变量接收所请求的设备接口属性的属性数据类型标识符。 property-data-type 标识符是基数据类型标识符与属性数据类型修饰符(如果修改基数据类型)之间的按位 OR。
[out] PropertyBuffer
指向接收请求的设备接口属性的缓冲区的指针。 仅当缓冲区足够大以容纳所有属性值数据时,SetupDiGetDeviceInterfaceProperty 才检索请求的属性。 指针可以为 NULL。 如果指针设置为 NULL 并提供 RequiredSize , 则 SetupDiGetDeviceInterfaceProperty 返回属性的大小(以字节为单位),以 *RequiredSize 为单位。
[in] PropertyBufferSize
PropertyBuffer 缓冲区的大小(以字节为单位)。 如果 PropertyBuffer 设置为 NULL,则必须将 PropertyBufferSize 设置为零。
[out, optional] RequiredSize
指向 DWORD 类型的变量的指针,如果检索到属性,则接收设备接口属性的大小(以字节为单位),如果缓冲区不够大,则接收所需的缓冲区大小。 此指针可以设置为 NULL。
[in] Flags
该参数必须设置为零。
返回值
SetupDiGetDeviceInterfaceProperty 如果成功,则返回 TRUE 。 否则,它将返回 FALSE,并且可以通过调用 GetLastError 来检索记录的错误。
下表包含此函数可能记录的一些更常见的错误代码。 其他错误代码可由此 API 调用的设备安装程序函数设置。
返回代码 | 说明 |
---|---|
|
Flags 的值不为零。 |
|
DevInfoSet 指定的设备信息集无效。 |
|
提供的参数无效。 一种可能性是 DeviceInterfaceData 指定的设备 接口无效。 |
|
PropertyKey 提供的属性键无效。 |
|
未指定的内部数据值无效。 |
|
用户缓冲区无效。 一种可能性是 PropertyBuffer 为 NULL,PropertyBufferSize 不为零。 |
|
由 DeviceInterfaceData 指定的设备接口不存在。 |
|
PropertyBuffer 缓冲区不够大,无法容纳属性值,或者传递给系统调用的内部数据缓冲区太小。 |
|
系统内存不足,无法完成操作。 |
|
请求的设备属性不存在。 |
|
调用方没有管理员权限。 |
注解
SetupDiGetDeviceInterfaceProperty 是 统一设备属性模型的一部分。
SetupAPI 仅支持 SetupDiGetDeviceInterfaceProperty 的 Unicode 版本。
SetupDiGetDeviceInterfaceProperty 的调用方必须是 Administrators 组的成员才能设置设备接口属性。
若要获取表示为设备接口设置的设备属性的设备属性键,请调用 SetupDiGetDeviceInterfacePropertyKeys。
若要设置设备接口属性,请调用 SetupDiSetDeviceInterfaceProperty。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | 桌面对于通用,请调用 CM_Get_Device_Interface_Property |
标头 | setupapi.h (包括 Setupapi.h) |
Library | Setupapi.lib |