COMMTIMEOUTS 結構 (winbase.h)
包含通訊裝置的逾時參數。 參數會決定裝置上 ReadFile、 WriteFile、 ReadFileEx和 WriteFileEx 作業的行為。
語法
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;
成員
ReadIntervalTimeout
允許在通訊線路上下一個位元組抵達前經過的時間上限,以毫秒為單位。 如果任何兩個位元組的抵達間隔超過此數量, 則 ReadFile 作業已完成,並傳回任何緩衝的資料。 值為零表示不會使用間隔逾時。
MAXDWORD的值,結合ReadTotalTimeoutConstant和ReadTotalTimeoutMultiplier成員的零值,指定讀取作業是立即傳回已接收的位元組,即使尚未收到任何位元組也一樣。
ReadTotalTimeoutMultiplier
用來計算讀取作業的總逾時期間,以毫秒為單位的乘數。 對於每個讀取作業,這個值會乘以要讀取的要求位元組數目。
ReadTotalTimeoutConstant
常數,用來計算讀取作業的總逾時期間,以毫秒為單位。 針對每個讀取作業,此值會新增至 ReadTotalTimeoutMultiplier 成員的乘積,以及要求的位元組數目。
ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant成員的值為零,表示讀取作業不會使用總逾時。
WriteTotalTimeoutMultiplier
用來計算寫入作業的總逾時期間,以毫秒為單位的乘數。 對於每個寫入作業,這個值會乘以要寫入的位元組數目。
WriteTotalTimeoutConstant
常數,用來計算寫入作業的總逾時期間,以毫秒為單位。 針對每個寫入作業,這個值會新增至 WriteTotalTimeoutMultiplier 成員的乘積,以及要寫入的位元組數目。
WriteTotalTimeoutMultiplier和WriteTotalTimeoutConstant成員的值為零,表示總逾時不會用於寫入作業。
備註
如果應用程式將 ReadIntervalTimeout 和 ReadTotalTimeoutMultiplier 設定為 MAXDWORD ,並將 ReadTotalTimeoutConstant 設定為大於零且小於 MAXDWORD的值,則會在呼叫 ReadFile 函式時發生下列其中一項:
- 如果輸入緩衝區中有任何位元組, ReadFile 會立即傳回緩衝區中的位元組。
- 如果輸入緩衝區中沒有位元組, ReadFile 會等到位元組到達,然後立即傳回。
- 如果未在 ReadTotalTimeoutConstant所指定的時間內到達任何位元組, ReadFile 就會 逾時。
規格需求
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
標頭 | winbase.h (包含 Windows.h) |