Written in Japanese(UTF-8)
2015. 3.21
INASOFT

/トップ/目次/管理人のひとこと(ブログ)/突然「例外コード: 0xc0000006=STATUS_IN_PAGE_ERROR」で落ちたとき

3126413 (+0768)[+0736]

管理人のふたこと Tweet

突然「例外コード: 0xc0000006=STATUS_IN_PAGE_ERROR」で落ちたとき



公開日:2015/03/21

先日、出先で「コピペテキスト修飾除去」を使っておりました(たまたま、そこで使えたのが ver.1.30.03β)。常駐系のソフトなので、長時間立ち上げっぱなしで使っていたのですが、ふとした瞬間、いきなり、次の2つのエラーを吐いて落ちました。

障害が発生しているアプリケーション名: DelAttr.exe、バージョン: 1.3.0.3、タイム スタンプ: *****
障害が発生しているモジュール名: DelAttr.exe、バージョン: 1.3.0.3、タイム スタンプ: *****
例外コード: 0xc0000006
障害オフセット: 0x0002e150
障害が発生しているプロセス ID: 0x99c

障害が発生しているアプリケーションの開始時刻: *****
障害が発生しているアプリケーション パス: *******¥DelAttr.exe
障害が発生しているモジュール パス: *******¥DelAttr.exe
レポート ID: *****

次のいずれかの理由によりファイル にアクセスできません: ネットワーク接続、このファイルの保存先ディスク、またはこのコンピューターにインストールされている記憶域 ドライバーに問題があります。または、ディスクが見つかりません。 このエラーによりプログラム コピペテキスト修飾除去 は終了しました。

プログラム: コピペテキスト修飾除去
ファイル:

エラー値は [追加データ] セクションに一覧表示されます。
ユーザー操作
1. このファイルをもう一度開きます。 この状況は、プログラムを再実行するときに修復される一時的な問題である可能性があります。
2. このファイルにまだアクセスできず、
ファイルがネットワーク上にある場合は、 ネットワーク管理者がネットワークに問題がないこと、およびサーバーにアクセスできることを検証する必要があります。
- ファイルが、フロッピー ディスクや CD-ROM などのリムーバブル ディスクにある場合は、ディスクがコンピューターに完全に挿入されていることを確認します。
3. CHKDSK を実行してファイル システムをチェックおよび修復します。CHKDSK を実行するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックし、「CMD」と入力して、[OK] をクリックします。コマンド プロンプトで「CHKDSK /F」と入力してから、Enter キーを押します。
4. 問題が解決しない場合は、バックアップ コピーからファイルを復元します。
5. 同じディスク上の他のファイルが開くかどうかを確認します。開かない場合は、そのディスクが壊れている可能性があります。ハード ディスクの場合は、管理者またはコンピューター ハードウェア ベンダーに連絡して サポートを受けます。

追加データ
エラー値: C000020C
ディスクの種類: 0

太字の赤字で示されている部分が、今回注目したい場所。ファイル名が入りそうな箇所で空白になっている箇所は、このとおり空白で表示されておりました。

過去に同じような落ち方をしたことは一度もなく、その後も全く再現せず、何が起きたのかなぁと思い、基本に立ち返ってイベントログを見直したら、上のようなエラーが出力されておりました。

例外コード: 0xc0000006というのは、STATUS_IN_PAGE_ERRORという意味で、メモリ上の操作で発生することのあるエラーです。ブルースクリーンでも、けっこうおなじみのエラーかも知れません。

とはいえ、そんな変なメモリの使い方をしているわけもなし、全然原因が分からなかったのですが、よく観たらもう一つエラーがあり、そちらにはネットワークであるとか記憶域に問題がある旨が書かれており、それが原因になり、プログラムが落ちたことが示されています。

これをキーワードにネット上を検索して見ると、類似情報でこんな情報が見つかりました。

要するに、ネットワーク上から起動しているプログラムがあって、ネットワークが瞬断してしまっている等で安定的な接続に問題がある瞬間があったりして、その時にexeファイルからの読み出しをOSが行おうとすると、上記のようなエラーになるということですね。

プログラムは起動時にすべてが読み込まれているとも限らないし、読み込まれた後にメモリ内からその内容が追い出されないとも限りません。プログラムが起動したよりもずっと後に、内容を保管するためにexeにもう一度アクセスすることもあります。それはすべて、OSの管理の下で行われ、プログラム自身がそれを意識することはありません。

これは、OSメモリマネージャの機能の一環で行われるようなのですが、そうした問題がこのエラーの発生に繋がるようです。

この問題はネットワーク上での起動だけでなく、リムーバブルメディア上での起動でも起こることがあります。これに備え、コンパイルオプションとして /SWAPRUN:NET を付けるという手段があるようですが、おそらく何かしらの副作用があると思いますので、このコンパイルオプションを付けることを解決策とはしたくないですね。

というかそもそも、このソフトはネットワーク上で起動することを奨励したり、それを既定状態として使うことを想定したりしているものではないわけで、ネットワーク上での起動オプションとか、リムーバブル上での起動オプション(/SWAPRUN:CD)を付けることを解決にするのは、ちょっと違うかな、という気がしていて。

さらに、ネットワーク上にファイル群を置いた場合、リモートコンピュータ上でヘルプ(CHM)ファイルが表示されない問題にもハマることになるので、奨励できませんし。

というわけで、付属ドキュメントや付属ヘルプにて、ネットワーク上での実行を控えるよう、注意喚起を促すことで問題解決を図ろうかと考えています。


本ページへは、自己責任の範囲内であれば自由にリンクしていただいて構いません。
本ページに掲載されている内容は、自由にお使いいただいて構いませんが、必ずしも筆者が内容を保証するものではありませんので、ご利用に際しては自己の責任においてお使いいただきますよう、お願いいたします。
このページのURLやアンカーは、サーバ運営・サイト運営・ページ運営・その他の都合により無告知で一時的あるいは永遠に消滅したり、変更したりする可能性がありますので、あらかじめご了承下さい。
本ページは、公開から1年半経過後の任意のタイミングで削除される予定です。本ページの内容は複製・公開していただいて構いません。


/トップ/目次/管理人のひとこと(ブログ)/突然「例外コード: 0xc0000006=STATUS_IN_PAGE_ERROR」で落ちたとき