1

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

何らかの方法で示す仕様を探しています。経験的な証拠に頼りたくない。

4

2 に答える 2

3

http://groups.google.ca/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/4fded0ac7e4ecfb4?hl=enによると

これは、ドライバー ライターがデバイスをどのように実装したかによって異なります。操作のキャンセルの正確なセマンティクスは、そのレベルでは定義されていません。

于 2009-08-07T18:55:15.957 に答える