COMMTIMEOUTS 構造体 (winbase.h)

通信デバイスのタイムアウト パラメーターが含まれます。 パラメーターは、デバイスでの ReadFileWriteFileReadFileEx、および WriteFileEx 操作の動作を決定します。

構文

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

メンバー

ReadIntervalTimeout

通信回線で次のバイトが到着するまでの最大経過時間 (ミリ秒単位)。 2 バイトの到着間隔がこの量を超えると、 ReadFile 操作が完了し、バッファーに格納されたデータが返されます。 値 0 は、間隔のタイムアウトが使用されないことを示します。

値 MAXDWORD を、ReadTotalTimeoutConstant メンバーと ReadTotalTimeoutMultiplier メンバーの両方の 0 個の値と組み合わせて使用すると、バイトが受信されていない場合でも、既に受信したバイトを使用してすぐに読み取り操作が返されることを指定します。

ReadTotalTimeoutMultiplier

読み取り操作の合計タイムアウト期間を計算するために使用される乗数 (ミリ秒単位)。 読み取り操作ごとに、この値に読み取る要求されたバイト数が乗算されます。

ReadTotalTimeoutConstant

読み取り操作の合計タイムアウト期間をミリ秒単位で計算するために使用される定数。 読み取り操作ごとに、この値は ReadTotalTimeoutMultiplier メンバーと要求されたバイト数の積に追加されます。

ReadTotalTimeoutMultiplier メンバーと ReadTotalTimeoutConstant メンバーの両方の値が 0 の場合は、合計タイムアウトが読み取り操作に使用されないことを示します。

WriteTotalTimeoutMultiplier

書き込み操作の合計タイムアウト期間をミリ秒単位で計算するために使用される乗数。 書き込み操作ごとに、この値に書き込むバイト数が乗算されます。

WriteTotalTimeoutConstant

書き込み操作の合計タイムアウト期間をミリ秒単位で計算するために使用される定数。 書き込み操作ごとに、この値は WriteTotalTimeoutMultiplier メンバーの積と書き込まれるバイト数に追加されます。

WriteTotalTimeoutMultiplier メンバーと WriteTotalTimeoutConstant メンバーの両方の値が 0 の場合、合計タイムアウトは書き込み操作に使用されないことを示します。

解説

アプリケーションで ReadIntervalTimeoutReadTotalTimeoutMultiplierMAXDWORD に設定し、 ReadTotalTimeoutConstant を 0 より大きく MAXDWORD 未満の値に設定すると、 ReadFile 関数が呼び出されたときに次のいずれかが発生します。

  • 入力バッファーにバイトがある場合、 ReadFile はバッファー内のバイトと共にすぐにを返します。
  • 入力バッファーにバイトがない場合、 ReadFile はバイトが到着するまで待機し、すぐにを返します。
  • ReadTotalTimeoutConstant で指定された時間内にバイトが到着しない場合、ReadFile はタイムアウトします。

要件

   
サポートされている最小のクライアント Windows XP
サポートされている最小のサーバー Windows Server 2003
Header winbase.h (Windows.h を含む)

関連項目

GetCommTimeouts

ReadFile

ReadFileEx

SetCommTimeouts

WriteFile

WriteFileEx