こんにちは、阿久津です。今夏リリース予定のWindows 10 バージョン1607から、古い「ファイルシステムフィルタードライバー」の登録を抑止する機能が加わる予定です。これまでWindowsは、ファイルの抽出概念をサポートする「ファイルシステムドライバー」と、ファイルシステムへのリクエストをフィルタリングする「ファイルシステムフィルタードライバー」を利用してきました。
ファイルシステムフィルタードライバーの実装方法には、レガシーファイルシステムドライバーとミニフィルタードライバーという2種類が存在します。レガシーファイルシステムドライバーは、ファイルシステムとのインターフェースをすべて自分で管理しなければなりません。細かい調整が可能な分、問題が発生しやすいため、Microsoftは以前からミニフィルタードライバーを推奨しています。
MicrosoftはWindows 10のさらなる安定性向上を目指すため、レガシーファイルシステムドライバーをブロックすることを決定したのでしょう。この仕様はWindows 10 Anniversary SDK Preview Build 14295から実装しますが、今回はWindows Insider Program参加者向けに、レガシーファイルシステムドライバーをブロックするチューニングをお送りします。
1. 管理者権限でレジストリエディターを起動します。
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\I/O Systemキーを開きます。
3. DWORD値「IoBlockLegacyFsFilters」を作成し、データを「1」に変更します。
4. レジストリエディターを終了します。
5. PCを再起動します。
これで操作が完了しました(図01~07)。
図02 レジストリエディターが起動したら、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\I/O Systemキーを開きます |
早速結果を確認してみましょう。管理者権限でコマンドプロンプトを起動し、「fltmc filters」とコマンドを実行してください。fltmc.exeはフィルタードライバーを制御するコマンドですが、オプション「filters」を使うことでシステムに登録されているフィルターの一覧が表示されます(図08~09)。
残念ながら手元に古いPCが存在しないためご覧頂けませんが、レガシーファイルシステムフィルタードライバーが登録されていると「フレーム」の部分に「レガシー」と表示されますので、チューニング結果の参考にしてください。また、本チューニング後にレガシーファイルシステムフィルタードライバーの登録を試みますと、システムイベントにID 1205でブロックした旨を示すログが残ります。
明確なメリットがあるチューニングではありませんが、安定性向上を目指す方はWindows 10 バージョン1607のリリース後にお試しください。なお、本チューニングを破棄する場合は、DWORD値「IoBlockLegacyFsFilters」のデータを「0」に変更するか、値自体を削除します。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)