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。 可能的值包括(但并不限于)下表中的项。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
至少一个必需的参数是 NULL 指针。 |
|
pPnPDeviceIDs 缓冲区太小,无法容纳请求的所有值,但 pcPnPDeviceIDs 值已写入 pPnPDeviceIDs。 |
注解
实例化设备管理器时会生成设备列表;当设备连接和断开连接时,它不会刷新。 若要刷新连接的设备列表,请调用 RefreshDeviceList。
API 为 pPnPDeviceIDs 数组指向的每个字符串分配内存。 应用程序不再需要这些字符串后,它必须循环访问此数组,并通过调用 CoTaskMemFree 函数释放关联的内存。
示例
有关如何使用此方法枚举设备的示例,请参阅 枚举设备。 有关如何使用此方法枚举服务的示例,请参阅 枚举服务。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | portabledeviceapi.h |
Library | PortableDeviceGUIDs.lib |