2014年8月27日水曜日

WriteFile等でタイムアウトエラー発生

WriteFile等、非同期I/Oで長くお待たせすると、エラーが出るようです。凡そ4秒と感じます。

「ファイルのコピー」
「予期しないエラーのため、ファイルをコピーできません。このエラーが再発する場合は、エラーコードを使用して、この問題についてのヘルプを検索してください。」
「エラー0x800705AA: システムリソースが不足しているため、要求されたサービスを完了できません。」

「再試行」「スキップ」「キャンセル」

「すべての項目にこれを実行する」


対策は、検討中です。

2014年7月3日木曜日

MoveFileでのつまづき

MoveFileはreplaceを引数に取ります。

replace=Falseであれば、特に問題なく・・・

replace=Trueの場合、Src側もDest側もCreateFileで開いています。開いているファイルにはDeleteFileが出来ないから、後続するMoveFileが失敗します・・・ さてどうしたものか・・・

DeleteFileの挙動

DeleteFileでファイルを消すことができない・・・

Windows 7 SP1で確認。

どうもCreateFileで、FILE_SHARE_DELETEを付けて開いている輩が居る。

CloseHandleしてからDeleteFileをして欲しいが、そういう訳にもいかず。このフラグはその為の伏線か・・・

つまり、DeleteFileは成功見込で保留し、最後のCloseHandleでファイル閉じた後、本当のDeleteFileの動作を執行する必要が有りそう。

Dokan実践編について

FUSEのWindows版とも言えるDokanで開発をしています。

気付いた事などを投稿して行きます。