IPortableDeviceManager::GetPrivateDevices 方法 (portabledeviceapi.h)

GetPrivateDevices 方法检索连接到计算机的专用可移植设备的列表。 只能通过专为这些特定设备设计的应用程序访问这些专用设备。

语法

HRESULT GetPrivateDevices(
  [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 可移植设备函数调用。

要求

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

另请参阅

IPortableDeviceManager 接口