Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Windowsプラットフォームサポートの平井です。
本記事では次の条件がすべて当てはまった場合に、サードパーティー製のWindowsサービスがc0000005(STATUS_ACCESS_VIOLATION)やc0000006(STATUS_IN_PAGE_ERROR)のアプリケーションエラーで異常終了するシナリオについて解説します。尚、この事象はPCのシャットダウン後の次回起動時に発生します。
条件は次の通りです。
条件1:高速スタートアップが有効な場合
条件2:対象のサードパーティー製Windowsサービスの実行ファイルやDLLがデータボリューム(C:以外)に存在する場合
条件3:対象のボリュームにページングファイルが非設定である場合
条件4:対象のドライブにBitLockerの構成がデバイス暗号がオン、保護状態がオフの状態の場合
本事象が発生する理由は次の通りです。
高速スタートアップが有効の場合にPCをシャットダウンした場合、Windowsサービスのプロセスはメモリ上に残った状態で休止状態となります。
この際、BitLockerの構成がデバイス暗号がオン・保護状態がオフの状態である場合、次回起動時にデータボリュームのデータを暗号化するためのキーを初期化する処理が発生し、BitLockerの仕様上ボリュームのディスマウントが必要となります。
ボリュームのディスマウントが発生した結果、メモリ上にマッピングされたWindowsサービスのプロセスの実行ファイルやDLLの情報に不整合が発生し、c0000005(STATUS_ACCESS_VIOLATION)やc0000006(STATUS_IN_PAGE_ERROR)等のアプリケーションエラーで異常終了する状況が発生します。
もし、上述の条件がすべて合致する環境にて、同様の問題を検出された場合、次の対応が必要となります。
対応1:サードパーティー製Windowsサービスの実行ファイルやDLLをシステムドライブ(C:)配下にインストールする
Windowsでは既定で、ページングファイルはシステムドライブ配下に保持されます。Windowsはページングファイルが存在するボリュームに対してディスマウントは発行しないため、本事象は発生しません。
対応2:高速スタートアップを無効化する
高速スタートアップが無効の場合にPCをシャットダウンした場合、Windowsサービスのプロセスは完全に停止し、メモリ上にプロセスに紐づく情報は残りません。
対応3:BitLockerをデバイス暗号化/保護状態が共にオンに構成する
BitLockerの設定がデバイス暗号化/保護状態が共にオンの場合、データボリュームの暗号化キーを初期化する処理が発生いたしません。このため、ボリュームのディスマウント処理が発生しないため、本事象は発生いたしません。
対応4:ページングファイルをデーターボリュームにも配置する
Windowsはページングが有効になったボリュームに対してディスマウント処理を発行しないため、本事象は発生いたしません。
例としてD:ドライブにページングファイルを配置する場合についての手順は次の通りです。
1.コントロールパネル\システムとセキュリティ\システムから、[システムの詳細設定]を開きます。
2.[システムのプロパティ] > [詳細設定]タブを開き、[パフォーマンス]セクション配下の[設定]を選択します。
3. [詳細設定]タブを開き[仮想メモリ]セクション 配下の、[変更]を選択します。
4.[すべてのドライブのページングファイルのサイズを自動的に管理する]のチェックボックスが有効の場合は、外します。
5.D:ドライブを選択し、[システム管理サイズ] > [設定]を選択し、[OK]を選択します。
6.システムを再起動し、設定を適用します。

