IDeviceSpecificProperty::GetValue 方法 (devicetopology.h)

GetValue 方法获取特定于设备的属性的当前值。

语法

HRESULT GetValue(
  [out] void  *pvValue,
        DWORD *pcbValue
);

参数

[out] pvValue

指向调用方分配的缓冲区的指针,方法在其中写入属性值。

pcbValue

[inout]指向 DWORD 变量的指针,该变量指定属性值的大小(以字节为单位)。 在输入时, *印刷值 包含调用方分配的缓冲区的大小 (;如果 pvValueNULL) ,则为 0。 在返回之前,方法会将写入缓冲区的实际大小写入缓冲区 (或所需大小(如果缓冲区太小或 pvValueNULL) )。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回代码 说明
E_POINTER
指针 “线路板值”NULL
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
参数 pvValue 指向的缓冲区太小,无法包含属性值,或者 pvValueNULL ,属性值的大小是固定的,而不是变量。 有关此宏的信息,请参阅 Windows SDK 文档。

备注

如果属性值的大小是可变的而不是固定的,则调用方可以通过调用参数 pvValueNULL*印刷值 = 0 的 GetValue = 来获取所需的缓冲区大小。 方法将所需的缓冲区大小写入 *pcbValue。 使用此信息,调用方可以分配所需大小的缓冲区,并再次调用 GetValue 以获取属性值。

如果调用方分配的缓冲区太小而无法保存属性值, 则 GetValue 会将所需的缓冲区大小写入 *印刷电路板值 ,并返回错误状态代码。 在这种情况下,它不会向 pvValue 指向的缓冲区写入任何内容。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 devicetopology.h

另请参阅

IDeviceSpecificProperty 接口