2009-08-06 11 views
1

私はReadFile() 10バイト(オーバーラップモードでタイムアウトなし)で、5バイトが読み込まれた後にCancelIo()を呼び出すとどうなりますか? CancelIo()のドキュメントでは、保留中のI/Oはキャンセルされますが、すでに読み込まれた5バイトはどうなりますか?彼らは失われていますか?彼らは再びエンキューされるので、次回にはReadFile()私はそれらを再び手に入れますか?CancelIo()は既に読み込まれたバイトで何をするのですか?

私は仕様を探しています。私は経験的証拠に頼るのは嫌です。

答えて

-1

使用しているので、それは問題ではないかI/Oを重複したり、あなたがI/Oをキャンセルした知っているときあなただけ手動でSetFilePointerを呼び出すことができます。

問題を強制するだけの場合は、文書化されていない動作に頼る必要はありません。

+0

"(オーバーラップモードでタイムアウトなし)" + "SetFilePointerを呼び出すことができます" - > SetFilePointerはCOMポートで動作しますか? –

+0

もしそれがCOMポートなら、あなたはすでに問題に陥っています。 – MSN

+0

ギリはすでにトラブルについて知っていたと思いますが、それを回復するためにはどんな状況が予想されるのだろうと思いました。 「私は仕様を探していますが、経験的な証拠に頼ることはしたくありません」経験的な証拠が唯一の方法なら、あまりにも悪い。 MSN、あなたは答えを知っていますか? –

関連する問題