知識マップ: Windows I/Oの深層(第6回・最終回) ── フィルタードライバーとミニフィルター:ProcmonとウイルススキャンがI/Oに割り込める理由
記事「Windows I/Oの深層(第6回・最終回) ── フィルタードライバーとミニフィルター:ProcmonとウイルススキャンがI/Oに割り込める理由」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
現在のファイルシステムフィルターの標準はミニフィルターで、デバイススタックに直接デバイスオブジェクトを積むレガシーフィルターと違い、Windows付属のフィルターマネージャー(FltMgr)へpre/postコールバックを登録する方式です。呼ばれる順序はMicrosoftが割り当て管理するアルティチュードで決定的に決まり、fltmcコマンドで実際の構成を観察できます。ウイルス対策・Procmon・OneDriveのクラウド同期はいずれもこの同じ仕組みの住人で、除外設定は該当製品自身のスキャンを省略するだけで保護を弱めるトレードオフを伴い、開発ボリューム向けにはDev Driveというより安全な代替があります。
flowchart LR
accTitle: フィルタードライバーとミニフィルターの知識マップ
accDescr: ファイルシステムフィルタードライバー、レガシーフィルターからミニフィルターへの世代交代、フィルターマネージャー(FltMgr)、pre/postコールバック、アルティチュードとロード順グループ、fltmcによる観察、ウイルス対策ミニフィルターと除外設定・Dev Drive、Procmonがミニフィルターとして全I/Oを記録する仕組みの関係を示す図
minifilter["ミニフィルター"]
filter_manager["フィルターマネージャー(FltMgr)"]
legacy_filter_driver["レガシーフィルター"]
filesystem_filter_driver["ファイルシステムフィルタードライバー"]
device_stack["デバイススタック"]
load_order_instability["ロード順序の不安定さ"]
minifilter_callback["pre/postコールバック"]
altitude["アルティチュード"]
load_order_group["ロード順グループ"]
fltmc["fltmc"]
altitude_request["アルティチュードの申請"]
procmon["Process Monitor(procmon.exe)"]
antivirus_minifilter["ウイルス対策ミニフィルター"]
cloud_filter["クラウドファイルフィルター(cldflt)"]
onedrive_files_on_demand["OneDriveのファイルオンデマンド"]
fast_io["ファストI/O"]
scan_performance_cost["スキャンによる性能コスト"]
exclusion_setting["除外設定(フォルダー除外)"]
reduced_protection["保護レベルの低下"]
dev_drive["Dev Drive"]
frame["FltMgrフレーム"]
driver_object["ドライバーオブジェクト"]
legacy_filter_driver -->|"実装を担う"| filesystem_filter_driver
minifilter -->|"実装を担う"| filesystem_filter_driver
minifilter -->|"の後継"| legacy_filter_driver
legacy_filter_driver -->|"前提とする"| device_stack
legacy_filter_driver -->|"原因になり得る"| load_order_instability
minifilter -->|"防止する"| load_order_instability
minifilter -->|"前提とする"| filter_manager
filter_manager -->|"利用する"| minifilter_callback
minifilter -->|"利用する"| minifilter_callback
minifilter -->|"で構成できる"| altitude
altitude -->|"で構成できる"| load_order_group
altitude -->|"で確認できる"| fltmc
altitude -->|"前提とする"| altitude_request
altitude_request -->|"より先に行うべき"| minifilter
minifilter -->|"で確認できる"| fltmc
legacy_filter_driver -->|"で確認できる"| fltmc
procmon -->|"実装を担う"| minifilter
procmon -->|"利用する"| minifilter_callback
antivirus_minifilter -->|"利用する"| minifilter_callback
antivirus_minifilter -->|"で構成できる"| altitude
cloud_filter -->|"自動化する"| onedrive_files_on_demand
minifilter -->|"利用する"| fast_io
antivirus_minifilter -.->|"原因になり得る"| scan_performance_cost
exclusion_setting -->|"軽減する"| scan_performance_cost
exclusion_setting -->|"原因になり得る"| reduced_protection
antivirus_minifilter -->|"で構成できる"| exclusion_setting
dev_drive -->|"軽減する"| scan_performance_cost
dev_drive -->|"軽減する"| reduced_protection
antivirus_minifilter -->|"推奨される対応"| dev_drive
filter_manager -->|"利用する"| frame
frame -->|"で確認できる"| fltmc
legacy_filter_driver -->|"利用する"| driver_object
minifilter -->|"利用する"| driver_object
filter_manager -->|"前提とする"| device_stack
filter_manager -->|"利用する"| driver_object
概念間の関係(全35件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- レガシーフィルターはファイルシステムフィルタードライバーの実装を担います。
- ミニフィルターはファイルシステムフィルタードライバーの実装を担います。
- ミニフィルターはレガシーフィルターの後継に当たります。
- レガシーフィルターはデバイススタックを前提とします。
- レガシーフィルターはロード順序の不安定さの原因になることがあります。
- ミニフィルターはロード順序の不安定さを防ぎます。
- ミニフィルターはフィルターマネージャー(FltMgr)を前提とします。
- フィルターマネージャー(FltMgr)はpre/postコールバックを利用します。
- ミニフィルターはpre/postコールバックを利用します。
- ミニフィルターはアルティチュードで構成できます。
- アルティチュードはロード順グループで構成できます。
- アルティチュードはfltmcで確認できます。
- アルティチュードはアルティチュードの申請を前提とします。
- アルティチュードの申請はミニフィルターより先に行うべきです。
- ミニフィルターはfltmcで確認できます。
- レガシーフィルターはfltmcで確認できます。
- Process Monitor(procmon.exe)はミニフィルターの実装を担います。
- Process Monitor(procmon.exe)はpre/postコールバックを利用します。
- ウイルス対策ミニフィルターはpre/postコールバックを利用します。
- ウイルス対策ミニフィルターはアルティチュードで構成できます。
- クラウドファイルフィルター(cldflt)はOneDriveのファイルオンデマンドを自動化します。
- ミニフィルターはファストI/Oを利用します。
- ウイルス対策ミニフィルターはスキャンによる性能コストの原因になることがあります。
- 除外設定(フォルダー除外)はスキャンによる性能コストを軽減します。
- 除外設定(フォルダー除外)は保護レベルの低下の原因になることがあります。
- ウイルス対策ミニフィルターは除外設定(フォルダー除外)で構成できます。
- Dev Driveはスキャンによる性能コストを軽減します。
- Dev Driveは保護レベルの低下を軽減します。
- ウイルス対策ミニフィルターはDev Driveに対する本記事の推奨です。
- フィルターマネージャー(FltMgr)はFltMgrフレームを利用します。
- FltMgrフレームはfltmcで確認できます。
- レガシーフィルターはドライバーオブジェクトを利用します。
- ミニフィルターはドライバーオブジェクトを利用します。
- フィルターマネージャー(FltMgr)はデバイススタックを前提とします。
- フィルターマネージャー(FltMgr)はドライバーオブジェクトを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。