IPortableDeviceManager::GetDeviceProperty 方法 (portabledeviceapi.h)

检索计算机上设备存储的属性值。 (这些属性不是由 Windows Portable Devices 定义的标准属性。)

语法

HRESULT GetDeviceProperty(
  [in]      LPCWSTR pszPnPDeviceID,
  [in]      LPCWSTR pszDevicePropertyName,
  [in, out] BYTE    *pData,
  [in, out] DWORD   *pcbData,
  [in, out] DWORD   *pdwType
);

参数

[in] pszPnPDeviceID

指向以 null 结尾的字符串的指针,该字符串包含设备的即插即用 ID。 可以通过调用 GetDevices 检索连接到计算机的所有设备的即插即用名称的列表。

[in] pszDevicePropertyName

指向以 null 结尾的字符串的指针,该字符串包含要请求的属性的名称。 这些是由设备制造商定义的自定义属性名称。

[in, out] pData

调用方分配的缓冲区,用于保存检索到的数据。 若要获取所需的大小,请调用此方法,并将此参数设置为 NULL并将该参数 设置为零,并将所需的大小在 data 中检索。 此调用还将返回可忽略的错误。 请参阅返回值。

[in, out] pcbData

pData 分配或返回的缓冲区的大小(以字节为单位)。

[in, out] pdwType

描述 pData 中返回的数据类型的常量。 此参数的值与用于描述 Platform SDK 函数 RegQueryValueExlpType 参数的类型相同。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
提供的缓冲区不够大,无法容纳请求的数据。 (当 pDataNULL 时,始终返回此结果。如果要调用 方法来检索所需的缓冲区大小,则可以忽略此结果。请参阅 pData 参数的说明。)
E_POINTER
至少一个必需的参数是 NULL 指针。

注解

这些属性值存储在设备安装上,或在操作期间由设备存储,以便它们可以跨连接会话持久保存。 应用程序必须知道由设备本身指定的属性的确切名称;因此,此方法旨在供创建自己的应用程序的设备开发人员使用。

若要从设备对象获取 Windows 可移植设备属性,请调用 IPortableDeviceProperties::GetValues,并使用 WPD_DEVICE_OBJECT_ID指定设备对象。

要求

要求
目标平台 Windows
标头 portabledeviceapi.h
Library PortableDeviceGUIDs.lib

另请参阅

IPortableDeviceManager 接口

IPortableDeviceManager::GetDevices