Windowsでシステムエラー109(ERROR_BROKEN_PIPE)が発生したときの原因と対処法
Windowsパソコンを使用していると、「システムエラー109:パイプが終了しました(The pipe has been ended)」というメッセージが表示されることがあります。この問題は、コマンドプロンプトやタスクマネージャーを使ってScanEngineなどの実行中のサービスを停止しようとした際によく見られます。
システムエラー109は、パソコンの操作中や特定のアプリケーションの起動時など、あらゆるタイミングで発生する可能性があります。ERROR_BROKEN_PIPEはWindowsの全バージョンで起こりうるエラーであり、特にバックグラウンドサービスをタスクマネージャーなどから終了させようとしたときに表示されやすい傾向があります。
ブルースクリーン(BSOD)のように作業を中断させる深刻なエラーに比べると、システムエラー109はそれほど重大な問題ではありません。多くの場合は無視しても大きな支障はありません。ただし、エラーが繰り返し発生する場合は、何らかの深刻な不具合が潜んでいるサインかもしれません。その場合は早めの対処が重要になります。
このエラーを理解するには、まず用語を知っておく必要があります。「壊れたパイプ(Broken pipe)」とは、実行中の2つのプロセス間をつなぐファイルディスクリプターの接続が切断された状態を指します。専門的な説明だけでは分かりにくい方のために、本記事ではシステムエラー109(ERROR_BROKEN_PIPE)の完全な解決方法を詳しく解説します。
パイプとは何か?なぜ切断されるのか?
パイプは2つのプロセスを接続する仕組みで、一方がファイルの読み込み側(リードエンド)、もう一方が書き込み側(ライトエンド)を持ちます。あるプロセスがパイプにデータを書き込むと、それはバッファに保存され、もう一方のプロセスによって読み取られます。
パイプとは、プロセス間の通信に使われる共有メモリの一部です。パイプを作成するプロセスを「パイプサーバー」、パイプに接続するプロセスを「パイプクライアント」と呼びます。片方のプロセスがパイプへ情報を書き込み、もう片方のプロセスがそこから情報を読み取ります。
パイプには「匿名パイプ」と「名前付きパイプ」の2種類があります。匿名パイプは名前付きパイプよりもオーバーヘッドが少ない反面、提供される機能は限定的です。
ここでいうパイプとは、情報の伝達路(コンジット)として使われるものを指します。概念的にはパイプには両端があります。一方向のパイプでは、片端のプロセスが書き込みを行い、もう片端のプロセスが読み取りを行います。双方向(デュプレックス)のパイプでは、各プロセスが自分側の端末から読み書きの両方が可能です。
「壊れたパイプ」は、どちらか一方のプロセスが予期せず終了し、もう一方のプロセスがまだパイプを閉じていない場合に発生します。
Windowsにおけるシステムエラー109(ERROR_BROKEN_PIPE)とは?
Windowsのシステムエラーは、OSの通常使用の中でさまざまな場面で発生します。ユーザーはエラーコードを受け取り、それをもとに何が起きたのかを分析・調査できます。しかし、コード自体が詳細な情報を必ずしも提供するわけではなく、サードパーティ製ソフトウェアも同じコードを返すことがあるため、エラー分析にはプログラムや実行環境の文脈を理解することが求められます。
処理の過程でWindowsはシステムエラーコードを送信し、コンピューターにどんな問題が起きているかをユーザーに知らせます。これらのエラーは予期しないタイミングで現れるため、エラーメッセージを丁寧に分析しなければ見逃されがちです。システムエラーコードは他の問題の「症状」でもあるため、エラーメッセージの内容、発生时刻、当時動作していたプロセスなどを総合的に考慮する必要があります。
このエラーの場合、次のメッセージがポップアップ表示されます。
「パイプが終了しました。(The pipe has been ended.)」
このエラーは通常、クライアントが一定時間待機した後、サーバーとの間で確立されたソケット接続を閉じたことを意味します。しかしサーバー側はそれを認識できず、データソースからの取得を続けています。サーバーは、以前作成したソケット接続を通じてクライアントへデータを送信しようとして初めて、接続が閉じられたことを知ります。このときにこのエラーが発生します。逆のケースもあり得ます。つまり、クライアントがサーバーの接続切断に気づかず、ストリームへの書き込みを試みた結果、BPE(Broken Pipe Error)を受け取ることもあります。
これは、データフローのどこかでデータの流れが止まったことを意味します。多くの場合、ファイアウォールやその他のセキュリティソフトウェアが原因です。ローカルコンピューターのファイアウォールを一時的に無効化してアップロードを許可するか、システム管理者に進め方を確認してください。
システムエラー109(ERROR_BROKEN_PIPE)の主な原因
なぜWindowsでシステムエラー109が発生するのでしょうか?
Windowsのシステムエラーは、ソフトウェアまたはハードウェアの不具合によって引き起こされます。設定変更やハードウェアの経年劣化により、ソフトウェアがハードウェアと正しく連携できなくなることがあります。競合するドライバーのインストールやOSの破損、異常な電力サージによる部品の損傷など、さまざまな要因が考えられます。ソフトウェア・ハードウェアの問題は、原因となる箇所を特定できれば比較的容易に解決できます。
また、ブートパーティションが何らかの理由で読み取り専用としてマウントされた場合にも、この問題が発生することがあります。誤作動するソフトウェアのインストールにより、システムがドライブへの書き込みを安全でないと判断してしまうケースです。
別の原因としては、インストーラーが必要なリソースを読み取りモードでアクセスしようとしたが、読み取り操作を正常に実行できないケースが挙げられます。Windowsではほとんどの「要素」がファイルとして扱われており、リソースを読むにはそのファイルを開く必要があります。ところが、別のプロセスがそのリソースを使用中だと、ファイルを読み取れないことがあります。さらに、読み取り側のプロセスが突然終了してファイルを閉じなかった場合、次回起動までファイルが破損したままになることもあります。
再起動後もファイルにアクセスできない場合は、問題が想定より大きい可能性があります。ファイルシステムが破損している恐れがあるためです。この場合、安定したWindows環境から破損したシステムを修復する必要があり、ライブUSBから起動して作業するのが最善の方法です。
そして最も懸念される原因がマルウェア感染です。インターネット上のあらゆる場所、例えばプログラムのクラック版ダウンロードや迷惑メールの添付ファイルを開いたことなどから脅威にさらされる可能性があります。プロセスに干渉するタイプのマルウェアは、パイプの切断をはじめとするさまざまなエラーを引き起こします。マルウェアはシステムプロセスを妨害する悪意のある動作をすることが知られているため、システムエラー109が突然発生する説明になります。
多くの場合このエラーは無視できますが、繰り返し発生するようであれば、マルウェアや古いドライバーが原因になっていないか、トラブルシューティングを実施しましょう。
システムエラー109(ERROR_BROKEN_PIPE)の対処法
このエラーメッセージに直面した場合は、以下の解決策を試してみてください。すべてを順番に試す必要はありません。エラーのトリガーが分かっているなら、効果がありそうな解決策から先に試すのがおすすめです。
対処法1:クイック再起動を行う
まず最初に試したいのは、シンプルな再起動です。バックグラウンドで不要なプロセスが大量に動作しており、実行しようとしているプロセスに十分なリソースが割り当てられていない可能性があります。この場合の最善策は再起動です。
Windowsの再起動は簡単です。スタートメニューを開き、電源ボタンをクリックして「再起動」を選択するだけです。運が良ければ、再起動後にエラーは消えているはずです。
対処法2:問題のアプリを再インストールする
アプリの起動時や実行時にシステムエラー109が発生した場合は、そのアプリを再インストールすれば問題が解決することがあります。再インストールの前に、ウイルス対策ソフトが再インストール処理に干渉しないよう、一時的に無効化しておきましょう。
Windows 10/11でアプリを再インストールする方法はいくつかあります。以下に代表的な手順を紹介します。
設定アプリから行う方法
- 「設定」を開き、「アプリ」を選択します。
- 「アプリと機能」をクリックします。
- 対象のアプリ(Microsoft Storeなど)を見つけてクリックします。
- 「詳細オプション」のリンクが表示されるのでクリックします。
- 「リセット」セクションに移動し、「リセット」ボタンを押します。
PowerShellから行う方法
- Cortanaの検索フィールドに「PowerShell」と入力し、上位の結果を右クリックして「管理者として実行」を選択します。
- コマンドラインに「Get-Appxpackage –Allusers」と入力し、Enterキーを押します。
- 対象アプリの名前を見つけ、パッケージ名をコピーします(Ctrl + C)。
- 次のコマンドを実行します:Add-AppxPackage -register "C:\Program Files\WindowsApps\<PackageFullName>" –DisableDevelopmentMode(PackageFullNameはコピーしたパッケージ名に置き換え、ドライブ文字も実際にWindowsをインストールしているドライブに変更してください)。
- Enterキーを押します。
対処法3:互換モードでアプリを実行する
場合によっては、アプリを互換モードで実行するだけで解決することがあります。アプリが現在使用中のWindowsバージョンに対応していない可能性があるためです。
手順は以下の通りです:
- アプリの保存場所に移動し、EXEファイルを右クリックします。
- 「プロパティ」を開き、「互換性」タブを選択します。
- 「互換モードでこのプログラムを実行する」のドロップダウンをクリックします。
- 現在のWindowsバージョンを選択します。
- 「適用」→「OK」をクリックします。
- エラーが解消されたか確認します。
対処法4:ドライバーをロールバックする
コンピューターに元から入っていたドライバーに戻すのも有効な手段です。手順は以下の通りです:
- デバイスマネージャーで問題のあるドライバーを見つけます。
- デバイスを右クリックして「プロパティ」をクリックします。
- プロパティウィンドウで「ドライバー」タブを開きます。
- 「ドライバーを元に戻す」ボタンをクリックします。
- 「以前のドライバーソフトウェアに戻してもよろしいですか?」という質問が表示されたら、「はい」をクリックしてロールバックを確定します。
- 完了後、コンピューターを再起動します。
対処法5:ドライバーを更新または再インストールする
ロールバックで改善しない場合は、ドライバーの更新または再インストールを試しましょう。コンピューターへの変更によってドライバーが乱れることがあり、その場合は再インストールか更新が必要です。ドライバー更新を簡単に行うなら、Outbyte Driver Updaterなどの専用ツールが便利です。古いドライバーを自動で検出し、ワンクリックで最新版に更新できるため、更新漏れを防ぎ、システムを常に最新の状態に保てます。
手動で更新したい場合は、以下の手順でWindows Update経由の更新が可能です:
- Windowsメニューボタンをクリックします。
- 「設定」を開きます。
- 「更新とセキュリティ」をクリックします。
- 「更新プログラムのチェック」を選択します。
なお、この方法はハードウェアメーカーがWindows Updateサービスを利用している場合にのみ有効です。
もうひとつの手動更新方法は、デバイスマネージャーを使うやり方です:
- 検索ボックスに「デバイスマネージャー」と入力します。
- デバイスの一覧から、更新したいカテゴリを展開します。
- デバイスを右クリックして「ドライバーの更新」を選択すると、自動的に更新されます。
- すべてのデバイスが最新になるよう、同様の操作を繰り返します。
ドライバーが正しく更新されたか確認するには:
- 検索ボックスに「デバイスマネージャー」と入力します。
- 更新したばかりのハードウェアのカテゴリを展開します。
- 対象デバイスを右クリックして「プロパティ」を選択します。
- 「ドライバー」タブで「ドライバーの日付」と「ドライバーのバージョン」を確認し、最新のドライバーになっているかチェックします。
すべてのドライバーが最新なのにエラーが続く場合は、他の解決策を試してください。
対処法6:システムの復元を使う
Windowsのシステムの復元機能を使うと、コンピューターを以前の正常な動作状態に戻せます。Windows 10/11でのサービス例外エラーが、直近にインストールしたソフトウェアや新しいウイルス対策プログラム、システム更新などが原因である可能性もあります。その場合はシステムの復元を実行しましょう。手順は以下の通りです:
- Windows 10/11の検索ボックスに「復元ポイントの作成」と入力します。
- 「システムの復元」ボタンをクリックします。
- 「次へ」をクリックします。
- 戻したい復元ポイントを選択します。
- 「影響を受けるプログラムのスキャン」をクリックすると、復元ポイント以降にインストールされたため利用できなくなるプログラムを確認できます。
- 復元ポイントを確認して「次へ」をクリックします。
- 「完了」をクリックします。
システムの復元は、戻りたい時点の復元ポイントが存在する場合にのみ機能します。
上記の手順でうまくいかない場合は、Windowsをセーフモードで起動してみましょう。セーフモードではOSの必須部分のみが動作し、復元処理を妨げる可能性のあるプログラム、更新、問題のあるアプリがすべて無効化されます。セーフモードでの起動手順は以下の通りです:
- 「スタート」→「設定」→「更新とセキュリティ」→「回復」の順に進みます。
- 「高度なスタートアップ」の下にある「今すぐ再起動」をクリックします。
- Windowsが表示するオプションメニューから「トラブルシューティング」→「詳細オプション」→「システムの復元」を選択します。
- 前述のシステムの復元の手順に従います。
対処法7:破損または欠落したシステムファイルを修復する
この対処法では、システムファイルチェッカー(SFC)ユーティリティを実行します。SFCは、破損したWindowsシステムファイルをスキャンして復元するために設計されたツールです。
SFCスキャンの実行手順:
- Windowsキーを押してスタートメニューを開きます。
- 検索フィールドに「cmd」または「コマンドプロンプト」と入力します。
- 最も関連性の高い検索結果を右クリックします。
- 「管理者として実行」を選択します。
- UAC(ユーザーアカウント制御)のダイアログが表示されたら、管理者パスワードを入力します。
- コマンドプロンプトウィンドウが開いたら、「sfc /scannow」と入力してEnterキーを押します。
- スキャンが完了するまで待ち、エラーメッセージがまだ表示されるかどうかを確認します。
併せてCheckdisk(CHKDSK)の実行もおすすめです。このツールはOSのさまざまな不整合を修復でき、システムエラーの解消にも役立ちます。CHKDSKの実行手順:
- 検索ボックスに「コマンドプロンプト」と入力し、結果一覧からそれを右クリックして「管理者として実行」を選択します。
- システムが「現在は実行できない。次回の起動前に実行するか?」と尋ねてきたら、「y」(Yes)を入力し、画面を閉じてコンピューターを再起動します。
- 再起動後、Windowsの外でCheckdiskが実行されるので、発見・修復・マークされた項目のレポートが出るまで完了を待ちます。
- ウィンドウを閉じ、コンピューターを通常どおり再起動させます。
対処法8:クリーンブートを実行する
クリーンブート状態では、Windowsの動作に必要な最小限のサービスのみで起動します。エラーが発生した操作をクリーンブートモードで試し、エラーが再現するか確認してください。
再現しない場合は、サードパーティ製ソフトウェアの競合が原因である可能性が高いです。クリーンブートの手順は以下の通りです:
- Windowsキー + Rを押して「ファイル名を指定して実行」を開きます。
- 「msconfig.msc」と入力してOKをクリックし、システム構成を開きます。
- システム構成ウィンドウで「サービス」タブを開きます。
- まず「すべてのMicrosoftサービスを隠す」にチェックを入れます。
- 次に「すべて無効」ボタンをクリックし、次回再起動時にサードパーティ製サービスが起動しないようにします。
- 「スタートアップ」タブを開き、「タスクマネージャーを開く」リンクをクリックします。
- 有効になっているスタートアップアプリをすべて無効化し、タスクマネージャーを閉じてシステム構成に戻ります。
- 「適用」→「OK」をクリックし、再起動の確認画面が出たら「今すぐ再起動」を選択します。
- PCがクリーンブートモードで再起動します。
対処法9:保留中のWindows Updateをインストールする
最新のWindowsバージョンを適用していないと、システムエラー109(ERROR_BROKEN_PIPE)を含むさまざまなエラーに遭遇することがあります。そこで、保留中のWindows Updateがないか確認しましょう。手順は以下の通りです:
- Windowsキー + Iを押して設定ユーティリティを起動します。
- 「更新とセキュリティ」セクションに移動し、「Windows Update」を選択します。
- 「更新プログラムのチェック」ボタンをクリックし、Windowsが利用可能な更新を確認・ダウンロードするのを待ちます。
- 完了したら「インストール」ボタンをクリックします。
- コンピューターを再起動し、システムエラー109がまだ表示されるか確認します。
対処法10:マルウェアをチェックする
Windowsには、マルウェアを検出・駆除できる組み込みのウイルス対策ソリューション「Windows Defender」が搭載されています。使い方は以下の通りです:
- スタートメニューをクリックします。
- 検索フィールドに「Windows Defender」と入力し、最上位の結果をクリックします。
- 更新の確認を求められたら、「今すぐ更新プログラムを確認」ボタンをクリックします。
- スキャンを進めるには「スキャン」ボタンを押します。
- Windows Defenderがデバイス内のマルウェアのスキャンを開始し、悪意のあるアクティビティやプロセスを検出すれば警告します。
より確実な結果を得たい場合は、サードパーティ製のマルウェア対策ソリューションも併用しましょう。信頼できる提供元から評判の良いウイルス対策ソフトをダウンロードし、インストール後に完全なマルウェアスキャンを実行して、システムに潜む脅威を残さないようにします。スキャン完了後、検出結果が表示されるので、推奨される修正を適用してください。
対処法11:OSインストールメディアで修復/再インストールする
システムソフトウェアを修復する最も確実な方法は、再インストールです。修復インストールなら、OSを修復しながらファイルを保持できます。ただし、クリーンインストールが必要になった場合に備え、事前にファイルのバックアップを取っておきましょう。インストールメディアを挿入してコンピューターを再起動します。
- BIOSにアクセスします。手順は機種によって異なり、F1、F2、Delキーのいずれかであることが多いです。
- ブートセクションに移動し、起動順序をインストールディスクに設定して設定を保存します。
- 旧バージョンのWindowsでは、コンピューターがインストールディスクにアクセスするまでキーを連打する必要がある場合があります。
- クリーンインストールの前に、まず修復ユーティリティを選択しましょう。手間を大幅に省けます。それでも再起動後に問題が続く場合は、ファイルをバックアップしてクリーン再インストールを行ってください。
対処法12:PCをリセットする
上記のすべての方法でWindows 10/11のエラーが解決しない場合は、PCのリセットという最終手段を検討しましょう。PCをリセットすると、インストール済みのアプリがすべて削除され、Windowsが出荷時の初期状態に戻ります。ドキュメントは削除されませんが、念のためリセット前に別の場所へ保存しておくことをおすすめします。手順は以下の通りです:
- 「スタート」→「設定」→「更新とセキュリティ」→「回復」の順に進み、「このPCをリセット」の下にある「開始する」をクリックします。
- リセットプロセスの仕組みを説明するプロンプトが表示されたら、「個人用ファイルを保持する」を選択します。
- 「リセット」をクリックします。
まとめ
システムエラーは、ハードウェアコンポーネントの malfunction、OSモジュールの破損などによって引き起こされます。システムエラーの種類は非常に幅広く、システム内の数百か所のいずれかで発生しうるものであり、システムエラー109(ERROR_BROKEN_PIPE)もそのひとつです。
システムエラー109は、実行中の2つのプロセス間のファイルディスクリプター通信が途絶えたときに発生します。アプリの起動時やプロセスの実行中に起こりえます。多くの場合、原因は不良デバイスドライバーまたはマルウェア感染です。まずフルシステムスキャンを実行し、次にドライバー更新ツールを使って新しいドライバーをインストールしましょう。それでも解決しない場合は、クリーンブートモードでPCを再起動し、サードパーティ製ソフトウェアが原因かどうかを特定して、競合するソフトウェアを削除してください。
このエラーのトリガーを特定するのは難しいことがあるため、上記の解決策をすべて順番に試すことをおすすめします。リストを上から順に進めて、ご自身の状況に最適な解決策を見つけてください。
このエラーの解決に成功した方法があれば、ぜひコメント欄で教えてください。記事に追加していきます。
-
Windows 10で「ファイル システム エラー (-2147219194)」が発生する原因と6つの解決方法
Windows 10で画像ファイル(.jpg、.jpeg、.pngなど)を開こうとした際に、「ファイル システム エラー (-2147219194)」というエラーメッセージが表示されることがあります。このエラーは実際に多くのユーザーが経験しており、業務でも何度も目にしたことがあるトラブルです。エラーメッセージは以下のように表示されます。ファイル システム エラー (-2147219194) の主な原因このエラーメッセージが表示される理由は、大きく分けて以下の2つです。開こうとしている画像ファイル自体が破損している画像を開くためのアプリケーション(フォトアプリなど)が破損しているまた、Windo
-
KMODE_EXCEPTION_NOT_HANDLEDエラーとは?Windows 10での原因と4つの直し方
KMODE_EXCEPTION_NOT_HANDLEDエラーとは? 「KMODE_EXCEPTION_NOT_HANDLED」エラー(バグチェックコード:0x0000001E)は、カーネルモードで動作しているプログラムが、エラーハンドラーが処理できない例外を発生させたことを示すブルースクリーン(BSoD)エラーです。仕組みはやや複雑ですが、簡単に言えば、アプリやプログラムが互いのメモリ領域を上書きしてしまうことで発生し、さまざまなエラーやシステムクラッシュにつながります。 関連記事:おすすめの無料PCチューンアップソフト KMODE_EXCEPTION_NOT_HANDLEDエラーの主な原因