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 以降 |