2012-11-21 93 views
1

從Windows 8下使用WPD(Windows便攜式設備)API讀取MTP兼容移動設備的數據時,我遇到了一個奇怪的問題(尚未嘗試使用任何其他Windows版本) 。WPD MTP數據流掛在版本

症狀是,經由IPortableDeviceResources::GetStream函數獲得的IStream界面上調用Release時,偶爾Release呼叫將掛起,而不是返回,直到裝置從PC斷開。

經過一番實驗後,我發現這個從來沒有發生,只要流的全部內容已被讀取。但是如果流只是部分讀取(比如文件的第一個256Kb),它可能會隨機發生(儘管頻率很高)。

這已被iPhone和Windows Phone 8移動版複製,因此它似乎不是特定於設備的。

有沒有人遇到過這類問題?更重要的是,除了總是閱讀流的全部內容之外,是否有人知道解決問題的方法?

謝謝!

回答

2

我發現調用IPortableDeviceDataStream::Cancel方法似乎解決了這個問題。