COMMTIMEOUTS 結構 (winbase.h)

包含通訊裝置的逾時參數。 參數會決定裝置上 ReadFileWriteFileReadFileExWriteFileEx 作業的行為。

語法

typedef struct _COMMTIMEOUTS {
  DWORD ReadIntervalTimeout;
  DWORD ReadTotalTimeoutMultiplier;
  DWORD ReadTotalTimeoutConstant;
  DWORD WriteTotalTimeoutMultiplier;
  DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS, *LPCOMMTIMEOUTS;

成員

ReadIntervalTimeout

允許在通訊線路上下一個位元組抵達前經過的時間上限,以毫秒為單位。 如果任何兩個位元組的抵達間隔超過此數量, 則 ReadFile 作業已完成,並傳回任何緩衝的資料。 值為零表示不會使用間隔逾時。

MAXDWORD的值,結合ReadTotalTimeoutConstantReadTotalTimeoutMultiplier成員的零值,指定讀取作業是立即傳回已接收的位元組,即使尚未收到任何位元組也一樣。

ReadTotalTimeoutMultiplier

用來計算讀取作業的總逾時期間,以毫秒為單位的乘數。 對於每個讀取作業,這個值會乘以要讀取的要求位元組數目。

ReadTotalTimeoutConstant

常數,用來計算讀取作業的總逾時期間,以毫秒為單位。 針對每個讀取作業,此值會新增至 ReadTotalTimeoutMultiplier 成員的乘積,以及要求的位元組數目。

ReadTotalTimeoutMultiplierReadTotalTimeoutConstant成員的值為零,表示讀取作業不會使用總逾時。

WriteTotalTimeoutMultiplier

用來計算寫入作業的總逾時期間,以毫秒為單位的乘數。 對於每個寫入作業,這個值會乘以要寫入的位元組數目。

WriteTotalTimeoutConstant

常數,用來計算寫入作業的總逾時期間,以毫秒為單位。 針對每個寫入作業,這個值會新增至 WriteTotalTimeoutMultiplier 成員的乘積,以及要寫入的位元組數目。

WriteTotalTimeoutMultiplierWriteTotalTimeoutConstant成員的值為零,表示總逾時不會用於寫入作業。

備註

如果應用程式將 ReadIntervalTimeoutReadTotalTimeoutMultiplier 設定為 MAXDWORD ,並將 ReadTotalTimeoutConstant 設定為大於零且小於 MAXDWORD的值,則會在呼叫 ReadFile 函式時發生下列其中一項:

  • 如果輸入緩衝區中有任何位元組, ReadFile 會立即傳回緩衝區中的位元組。
  • 如果輸入緩衝區中沒有位元組, ReadFile 會等到位元組到達,然後立即傳回。
  • 如果未在 ReadTotalTimeoutConstant所指定的時間內到達任何位元組, ReadFile 就會 逾時。

規格需求

   
最低支援的用戶端 Windows XP
最低支援的伺服器 Windows Server 2003
標頭 winbase.h (包含 Windows.h)

另請參閱

GetCommTimeouts

ReadFile

ReadFileEx

SetCommTimeouts

WriteFile

WriteFileEx