ClearCommError

通信エラーの情報を取得して、通信デバイスの現在の状態を通知します。通信エラーが発生した場合に呼び出し、デバイスのエラーフラグをクリアして次の入出力(I/O)操作を可能にします。

function ClearCommError(
                                  hFile: THandle;           // 通信デバイスのハンドル
                                  var lpErrors: DWORD;  // エラーコードを受け取る変数へのポインタ
                                  lpStat: PComStat       // 通信状態バッファへのポインタ
                                 ): BOOL; stdcall;
 

パラメータ

hFile
通信デバイスのハンドルを指定します。CreateFile 関数が返すハンドルを使います。
lpErrors
エラーの種類を示すマスクを受け取る 32 ビット変数へのポインタを指定します。次の1つ以上のエラーコードが格納されます。
定数 意味
CE_BREAK ハードウェアがブレーク条件を検出しました。
CE_DNS Windows 95/98:パラレルデバイスが選択されていません。
CE_FRAME ハードウェアがフレーミングエラーを検出しました。
CE_IOE デバイスとの通信中に I/O エラーが発生しました。
CE_MODE 要求したモードがサポートされていません。または、hFile パラメータが無効です( この値が指定された場合、このエラーコードのみが有効値となります)。
CE_OOP Windows 95/98:パラレルデバイスが用紙切れになっています。
CE_OVERRUN 文字バッファがいっぱいになりました。次の文字は失われます。
CE_PTO Windows 95/98:パラレルデバイスでタイムアウトになりました。
CE_RXOVER 入力バッファのオーバーフローが発生しました。入力バッファに空きがないか、EOF の後に文字を受信しました。
CE_RXPARITY ハードウェアがパリティエラーを検出しました。
CE_TXFULL アプリケーションが文字を送信しようとしましたが、出力バッファがいっぱいでした。

 
lpStat
COMSTAT 構造体へのポインタを指定します。この構造体を使って、デバイスの状態情報を受け取ります。NULL を指定した場合、状態情報を受け取りません。

戻り値

関数が成功すると、TRUEが返ります。
関数が失敗すると、FALSE が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。

解説

fAbortOnError メンバに TRUE 値が指定された DCB 構造体でセットアップされた通信ポートでは、通信エラーが発生すると通信ソフトウェアがすべての読み書き動作を中止します。アプリケーションが ClearCommError 関数を呼び出して通信エラーを確認するまで、新たな読み取り、書き込みは実行されません。
ClearCommError 関数は、lpStat パラメータが示す状態バッファに、hFile パラメータで指定された通信デバイスの現在の状態を格納します。

対応情報

  Windows NT/2000:Windows NT 3.1 以降
  Windows 95/98:Windows 95 以降