アプリケーションのデバッグ中などに、デバイスが動作中の状態でアプリケーションを強制終了させると、以降AioInit関数は正常終了するものの、その他の関数で20003のエラーが返ることがあります。
これはAioExitの終了処理が行われずにアプリケーションが終了するために発生します。この現象は必ず発生するわけではありません。OSや開発言語の組み合わせによって、発生する場合とそうでない場合があります。
以下に回避策を記述します。
極力統合環境のアプリケーション停止を使用しない。デバッグ中はアプリケーションに強制停止用のボタンを作成しておき、AioExit関数が実行されるようにしておく。
[スタート]-[ファイル名を指定して実行]より、「CAIORST.EXE Aio000」と入力し[OK]ボタンをクリックします。
「Aio000」の部分は、20003エラーが発生しているデバイスのデバイス名を入力してください。
「プロセスは正常にリセットされました」と表示されれば、その後デバイスが使用可能になります。
「プロセスのリセットに失敗しました」と表示された場合は、他の方法を試してください。
一度デバイスマネージャーから20003エラーの発生するデバイスを削除し、再度デバイスのインストールを行う。
ただし、失敗する場合があります。
OSを再起動する。
時間がかかりますが確実な方法です。