2009-08-06 64 views
1

如果我ReadFile() 10個字節(在重疊的模式,不超時),但調用字節被讀取後CancelIo() 5會怎麼樣? CancelIo()的文檔說它取消了所有未決的I/O,但是已經讀取的5個字節會發生什麼?他們是否輸了?他們是否重新排隊,所以下一次我ReadFile()我會再次讓他們?CancelIo()對已經被讀取的字節做了什麼?

我要找的規範來表示這種或那種方式。我不想依賴經驗證據。

回答

-1

要麼因爲你使用也沒關係重疊I/O或者你可以手動調用SetFilePointer當你知道你已經取消的I/O。

你不必依靠無證行爲,如果你剛剛生效的問題。

+0

「(在不超時重疊模式)」 +「你可以叫SetFilePointer」 - >上的COM端口SetFilePointer的作品? – 2009-08-19 05:45:30

+0

如果它是一個COM端口,那麼你已經陷入困境。 – MSN 2009-08-19 16:59:57

+0

我覺得吉利已經知道麻煩了,但是想知道爲了從中恢復過來會發生什麼情況。 「我正在尋找說明這種或那種方式的規範,我不想依賴經驗證據。」如果經驗證據是唯一的方法,那就太糟糕了。 MSN,你知道答案嗎? – 2009-08-19 23:41:35