Windows 8でWPD(Windows Portable Devices)APIを使用してMTP互換のモバイルデバイスからデータを読み取るときに、奇妙な問題が発生しました(他のWindowsバージョンはまだ試していません)。
症状は、関数を介して取得Release
したIStream
インターフェイスを呼び出すときに、デバイスがPCから切断されるまで呼び出しがハングし、戻らない場合があります。IPortableDeviceResources::GetStream
Release
いくつかの実験の結果、ストリームの内容全体が読み取られている限り、これは決して発生しないことがわかりました。ただし、ストリームが部分的にしか読み取られていない場合(たとえば、ファイルの最初の256Kb)、一見ランダムに発生する可能性があります(かなり頻繁に発生します)。
これはiPhoneとWindowsPhone8モバイルで再現されているため、デバイス固有ではないようです。
誰かが以前にこの種の問題に遭遇したことがありますか?さらに重要なことに、ストリームのコンテンツ全体を常に読み取る以外に、それを解決する方法を知っている人はいますか?
ありがとう!