如果我ReadFile()
10個字節(在重疊的模式,不超時),但調用字節被讀取後CancelIo()
5會怎麼樣? CancelIo()
的文檔說它取消了所有未決的I/O,但是已經讀取的5個字節會發生什麼?他們是否輸了?他們是否重新排隊,所以下一次我ReadFile()
我會再次讓他們?CancelIo()對已經被讀取的字節做了什麼?
我要找的規範來表示這種或那種方式。我不想依賴經驗證據。
如果我ReadFile()
10個字節(在重疊的模式,不超時),但調用字節被讀取後CancelIo()
5會怎麼樣? CancelIo()
的文檔說它取消了所有未決的I/O,但是已經讀取的5個字節會發生什麼?他們是否輸了?他們是否重新排隊,所以下一次我ReadFile()
我會再次讓他們?CancelIo()對已經被讀取的字節做了什麼?
我要找的規範來表示這種或那種方式。我不想依賴經驗證據。
這取決於驅動程序編寫者如何實現的設備。操作取消的確切的 語義沒有被定義爲該級別。
要麼因爲你使用也沒關係重疊I/O或者你可以手動調用SetFilePointer
當你知道你已經取消的I/O。
你不必依靠無證行爲,如果你剛剛生效的問題。
「(在不超時重疊模式)」 +「你可以叫SetFilePointer」 - >上的COM端口SetFilePointer的作品? – 2009-08-19 05:45:30
如果它是一個COM端口,那麼你已經陷入困境。 – MSN 2009-08-19 16:59:57
我覺得吉利已經知道麻煩了,但是想知道爲了從中恢復過來會發生什麼情況。 「我正在尋找說明這種或那種方式的規範,我不想依賴經驗證據。」如果經驗證據是唯一的方法,那就太糟糕了。 MSN,你知道答案嗎? – 2009-08-19 23:41:35