IPortableDeviceManager::GetDevices 方法 (portabledeviceapi.h)

检索连接到计算机的便携式设备的列表。

语法

HRESULT GetDevices(
  [in, out] LPWSTR *pPnPDeviceIDs,
  [in, out] DWORD  *pcPnPDeviceIDs
);

参数

[in, out] pPnPDeviceIDs

调用方分配的字符串指针数组,保存所有已连接设备的即插即用名称。 若要了解此参数所需的大小,请先调用此方法,并将此参数设置为 NULL并将 pcPnPDeviceIDs 设置为零,然后根据 pcPnPDeviceIDs 检索到的值分配缓冲区。 IPortableDevice::Open 可以使用这些名称来创建与设备的连接。

[in, out] pcPnPDeviceIDs

输入时, pPnPDeviceIDs 可以容纳的值数。 输出时,指向实际写入 pPnPDeviceIDs 的设备数的指针。

返回值

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

返回代码 说明
S_OK
方法成功。
E_POINTER
至少一个必需的参数是 NULL 指针。
S_FALSE
pPnPDeviceIDs 缓冲区太小,无法容纳请求的所有值,但 pcPnPDeviceIDs 值已写入 pPnPDeviceIDs

注解

实例化设备管理器时会生成设备列表;当设备连接和断开连接时,它不会刷新。 若要刷新连接的设备列表,请调用 RefreshDeviceList

API 为 pPnPDeviceIDs 数组指向的每个字符串分配内存。 应用程序不再需要这些字符串后,它必须循环访问此数组,并通过调用 CoTaskMemFree 函数释放关联的内存。

示例

有关如何使用此方法枚举设备的示例,请参阅 枚举设备。 有关如何使用此方法枚举服务的示例,请参阅 枚举服务

要求

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

另请参阅

枚举设备

枚举服务

IPortableDeviceManager 接口