我在Windows 8下使用WPD () API从兼容MTP的移动设备读取数据时遇到了一个奇怪的问题(还没有尝试任何其他Windows版本)。
症状是,在通过Release函数获得的IStream接口上调用IPortableDeviceResources::GetStream时,偶尔会挂起Release调用,直到设备与PC断开连接才返回。
经过一些实验,我发现只要读取了流的全部内容,这个就不会发生。但是,如果流只被部分读取(例如,文件的第一个256 at ),它可能看起来是随机发生的(尽管非常频繁)。
这是由iPhone和Windows 8手机复制的,因此它似乎并不是特定于设备的。
以前有没有人遇到过这样的问题?更重要的是,除了总是读取流的全部内容之外,还有人知道解决这个问题的方法吗?
谢谢!
发布于 2012-11-25 23:53:33
我发现调用IPortableDeviceDataStream::Cancel方法似乎解决了这个问题。
https://stackoverflow.com/questions/13503436
复制相似问题