フィルタードライバーとミニフィルターの知識マップ(知識グラフ)
type: Dataset

ミニフィルター
type: Concept
definition: フィルターマネージャー(FltMgr)にpre/postコールバックを登録する方式で動く、現在の標準のファイルシステムフィルタードライバー実装方式。
alternative label: Minifilter
alternative label: ミニフィルタードライバー
broader: ファイルシステムフィルタードライバー
implements: ファイルシステムフィルタードライバー
succeeds: レガシーフィルター
prevents: ロード順序の不安定さ
requires: フィルターマネージャー(FltMgr)
uses: pre/postコールバック
uses: ファストI/O
uses: ドライバーオブジェクト
configured by: アルティチュード
verified by: fltmc

フィルターマネージャー(FltMgr)
type: Concept
definition: Windowsに付属するカーネルモードドライバーで、ミニフィルタードライバーの開発を簡素化する機能を公開する。自身がスタックに立ち、個々のミニフィルターはこれにコールバックを登録する。
alternative label: FltMgr
alternative label: Filter Manager
uses: pre/postコールバック
uses: FltMgrフレーム
uses: ドライバーオブジェクト
requires: デバイススタック

レガシーフィルター
type: Concept
definition: ファイルシステムのデバイススタックに自分のデバイスオブジェクトを直接積み重ねる、古い世代のファイルシステムフィルタードライバー実装方式。ロード順に依存し安全なアンロードができない。
alternative label: Legacy Filter Driver
broader: ファイルシステムフィルタードライバー
implements: ファイルシステムフィルタードライバー
requires: デバイススタック
may cause: ロード順序の不安定さ
verified by: fltmc
uses: ドライバーオブジェクト

ファイルシステムフィルタードライバー
type: Concept
definition: ファイルシステム(またはその下のボリューム)に向かう要求を横取りできるオプションのドライバー。要求の記録・監視・データの変更・防止ができる。
alternative label: フィルタードライバー

デバイススタック
type: Concept
definition: 積み重なった複数のデバイスオブジェクトの列。IRPはスタック最上位のデバイスオブジェクトへ送られ、各層で処理または下位への転送が行われる。
alternative label: Device Stack

ロード順序の不安定さ
type: Concept
definition: レガシーフィルターが抱えていた、フィルターの積まれる順序がロード順に依存して保証しにくく、安全にアンロードもできないという問題。

pre/postコールバック
type: Concept
definition: ミニフィルターがFltMgrに登録する、I/O操作の前(pre)と後(post)に呼ばれる処理。素通し・拒否・肩代わり・書き換えができる。
alternative label: preコールバック
alternative label: postコールバック

アルティチュード
type: Concept
definition: ボリュームにアタッチされるミニフィルターのインスタンスごとに付く一意の番号。数字が大きいほどスタックの上(アプリ寄り)に位置し、複数のフィルターが同じ操作を見る際の呼び出し順序を決定的に決める。Microsoftが割り当て・管理する。
alternative label: Altitude
alternative label: 標高
configured by: ロード順グループ
verified by: fltmc
requires: アルティチュードの申請

ロード順グループ
type: Concept
definition: ファイルシステムフィルター用に用途別(Activity Monitor、Anti-Virus、Replicationなど)に定義されたグループで、それぞれにアルティチュードの番号帯が割り当てられる。
alternative label: Load Order Group

fltmc
type: Concept
definition: 登録されているミニフィルターの一覧、ボリュームごとのアタッチ状況、ロード・アンロードを操作できる管理者向けコマンドラインツール。
alternative label: fltmc.exe
alternative label: Fltmc

アルティチュードの申請
type: Concept
definition: 新しいミニフィルターのアルティチュード識別子をMicrosoftへ申請する手続き。fsfcomm@microsoft.comへの英文メールで行い、処理に30営業日を見込む。
alternative label: Filter Altitude Request
should precede: ミニフィルター

Process Monitor(procmon.exe)
type: Concept
definition: ファイルI/O・レジストリ・プロセス/スレッド活動をリアルタイムに監視できるSysinternalsのツール。Advanced Outputを有効にすると、IRPやファストI/Oのカーネル側の語彙で操作を表示する。
alternative label: Procmon
alternative label: Process Monitor
implements: ミニフィルター
uses: pre/postコールバック

ウイルス対策ミニフィルター
type: Concept
definition: ファイルI/O中のウイルス検出・駆除を行うミニフィルター。FSFilter Anti-Virus帯(320000〜329999)に位置する。Microsoft DefenderのWdFilterなどが該当する。
alternative label: WdFilter
alternative label: AVミニフィルター
broader: ミニフィルター
uses: pre/postコールバック
configured by: アルティチュード
configured by: 除外設定(フォルダー除外)
recommended for: Dev Drive

クラウドファイルフィルター(cldflt)
type: Concept
definition: クラウドファイルAPIを実装するミニフィルター。OneDriveのファイルオンデマンドの実行部隊で、プレースホルダーが開かれたときに実体を取得する。
alternative label: cldflt
alternative label: Cloud Filter
broader: ミニフィルター
automates: OneDriveのファイルオンデマンド

OneDriveのファイルオンデマンド
type: Concept
definition: 実データが手元にないクラウド上のファイルをプレースホルダー(リパースポイント)としてローカルに見せ、アクセス時にクラウドフィルターが実体を取得する仕組み。
alternative label: Files On-Demand
alternative label: クラウドファイル
broader: reparse-point

ファストI/O
type: Concept
definition: キャッシュに載っているファイルへの同期I/Oのために、IRPを組み立てずキャッシュマネージャーと直接データをやり取りする高速経路。処理できない場合は通常のIRP経路に折り返す。
alternative label: Fast I/O

スキャンによる性能コスト
type: Concept
definition: ウイルス対策ミニフィルターによるファイルスキャンがI/Oに追加する処理時間。大量の小ファイルを扱うワークロードで支配的になりやすい。
alternative label: スキャンコスト

除外設定(フォルダー除外)
type: Concept
definition: 指定したパス・プロセスをウイルス対策のスキャン対象から外す設定。効くのはその設定を持つ製品自身のフィルターだけで、保護レベルを下げるトレードオフを伴う。
alternative label: フォルダー除外
alternative label: スキャン除外
mitigates: スキャンによる性能コスト
may cause: 保護レベルの低下

保護レベルの低下
type: Concept
definition: 除外設定などによってスキャン対象から外れた結果、その範囲の脅威検出・防御が働かなくなること。

Dev Drive
type: Concept
definition: 開発ワークロード向けに設計された専用ボリューム。Microsoft Defenderがパフォーマンスモード(非同期スキャン)で動作し、フォルダー除外の安全な代替と位置付けられる。
mitigates: スキャンによる性能コスト
mitigates: 保護レベルの低下

FltMgrフレーム
type: Concept
definition: レガシーフィルターとの共存のため、FltMgrがI/Oスタックの複数箇所にアタッチする単位。fltmcの出力のFrame列で確認できる。
alternative label: Frame
verified by: fltmc

ドライバーオブジェクト
type: Concept
definition: ドライバーのロード時にI/Oマネージャーが作るオブジェクト。要求の種類ごとの処理関数(ディスパッチルーチン)への対応表であるMajorFunction配列を持つ。
alternative label: DRIVER_OBJECT

subject: レガシーフィルター
predicate: implements
object: ファイルシステムフィルタードライバー
description: レガシーフィルターは、ファイルシステムへの要求を横取りできるファイルシステムフィルタードライバーの古い実装方式である
evidence: about-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: implements
object: ファイルシステムフィルタードライバー
description: ミニフィルターは、ファイルシステムフィルタードライバーの現在の標準的な実装方式である
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: succeeds
object: レガシーフィルター
description: ミニフィルターは、デバイススタックに直接割り込むレガシーフィルターの問題(順序不定・安全にアンロードできない)を解決するために導入された
evidence: advantages-of-the-filter-manager-model
verified at: 2026-08-01
certainty: established

subject: レガシーフィルター
predicate: requires
object: デバイススタック
description: レガシーフィルターは、自分のデバイスオブジェクトをファイルシステムのデバイススタックに直接積み重ねる方式で動く
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: レガシーフィルター
predicate: mayCause
object: ロード順序の不安定さ
description: レガシーフィルターは積まれる順序がロード順に依存して保証しにくく、一度積んだら安全にアンロードできないなどの問題を抱えていた
evidence: advantages-of-the-filter-manager-model
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: prevents
object: ロード順序の不安定さ
description: 順序をアルティチュードで制御でき、任意のタイミングでロードでき、対応フィルターなら稼働中のアンロードもできるため、レガシー時代の順序不定・アンロード不可の問題を防ぐ
evidence: advantages-of-the-filter-manager-model
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: requires
object: フィルターマネージャー(FltMgr)
description: ミニフィルターは、Windows付属のフィルターマネージャー(FltMgr)にコールバックを登録する方式で動く
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: フィルターマネージャー(FltMgr)
predicate: uses
object: pre/postコールバック
description: FltMgrは、興味を宣言した操作について各ミニフィルターのpre/postコールバックを呼び出す
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: uses
object: pre/postコールバック
description: ミニフィルターは操作の前(pre)と後(post)に呼ばれるコールバックを実装し、素通し・拒否・肩代わり・書き換えを行う
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: configuredBy
object: アルティチュード
description: 複数のミニフィルターが同じ操作を見るときの呼び出し順序は、アルティチュード(標高)という一意の番号で決定的に決まる
evidence: load-order-groups-and-altitudes-for-minifilter-drivers
verified at: 2026-08-01
certainty: established

subject: アルティチュード
predicate: configuredBy
object: ロード順グループ
description: アルティチュードの値は、用途別に定義されたロード順グループごとの番号帯から割り当てられる
evidence: load-order-groups-and-altitudes-for-minifilter-drivers
verified at: 2026-08-01
certainty: established

subject: アルティチュード
predicate: verifiedBy
object: fltmc
description: fltmc(fltmc filters)で、登録されているフィルターとそのアルティチュードを一覧できる
evidence: blocking-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: アルティチュード
predicate: requires
object: アルティチュードの申請
description: 新しいアルティチュード識別子はMicrosoftによって割り当て・管理されており、自分で名乗ることはできない
evidence: allocated-altitudes
verified at: 2026-08-01
certainty: established

subject: アルティチュードの申請
predicate: shouldPrecede
object: ミニフィルター
description: 自社のミニフィルターを配布する前に、件名「Filter altitude request」のメールをfsfcomm@microsoft.comへ送って申請し、処理に30営業日を見込んでアルティチュードを取得しておくべき
evidence: minifilter-altitude-request
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: verifiedBy
object: fltmc
description: fltmc filtersの出力(Filter Name / Num Instances / Altitude / Frame)で、ロードされているミニフィルターの構成を確認できる
evidence: development-and-testing-tools
verified at: 2026-08-01
certainty: established

subject: レガシーフィルター
predicate: verifiedBy
object: fltmc
description: fltmc filtersの出力でFrame列が<Legacy>になっているものは、FltMgrを介さないレガシーファイルシステムフィルタードライバーである
evidence: blocking-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: implements
object: ミニフィルター
description: Process Monitorは、起動時にActivity Monitor帯のミニフィルターとして自分自身をFltMgrに登録することで、ファイルシステムの活動をリアルタイムに監視する
evidence: procmon
verified at: 2026-08-01
certainty: established

subject: Process Monitor(procmon.exe)
predicate: uses
object: pre/postコールバック
description: Procmonはミニフィルターとして全ボリュームのI/O操作のpre/postコールバックに立ち会うことで、どのプロセスがどのファイルに何をしたかを漏れなく記録する
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: ウイルス対策ミニフィルター
predicate: uses
object: pre/postコールバック
description: ウイルス対策のミニフィルターは、ファイルのオープンが成立した直後(post-create)にpostコールバックで中身をスキャンし、問題があればオープンを取り消せる
evidence: about-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: ウイルス対策ミニフィルター
predicate: configuredBy
object: アルティチュード
description: ウイルス対策のミニフィルターは、FSFilter Anti-Virus帯(320000〜329999)のアルティチュードに位置する(例: WdFilterは328010)
evidence: allocated-altitudes
verified at: 2026-08-01
certainty: established

subject: クラウドファイルフィルター(cldflt)
predicate: automates
object: OneDriveのファイルオンデマンド
description: クラウドファイルAPIを実装するクラウドフィルター(cldflt)は、プレースホルダーとして表現されたファイルがアクセスされた際の実体の取得を自動で行う
evidence: cloud-files-api-portal
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: uses
object: ファストI/O
description: FltMgrはファストI/O経路にもコールバック機構を通しているため、ミニフィルターはIRPを作らない近道であるファストI/Oにも立ち会える(レガシー時代は近道を通られると見えなかった)
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: ウイルス対策ミニフィルター
predicate: mayCause
object: スキャンによる性能コスト
description: ファイルを開くたびのスキャンや変更後の再スキャンが、特に大量の小ファイルを扱うワークロードで支配的なコストになりうる
evidence: configure-exclusions-microsoft-defender-antivirus
verified at: 2026-08-01
certainty: context-dependent

subject: 除外設定(フォルダー除外)
predicate: mitigates
object: スキャンによる性能コスト
description: 除外リストに一致するパスのI/Oでは、その製品のフィルターのスキャン処理が省略され、性能コストが下がる
evidence: configure-exclusions-microsoft-defender-antivirus
verified at: 2026-08-01
certainty: established

subject: 除外設定(フォルダー除外)
predicate: mayCause
object: 保護レベルの低下
description: 除外は防御を減らすものであり、必要性を評価した上で慎重に定義すべきと公式ドキュメントが繰り返し注意している
evidence: configure-exclusions-microsoft-defender-antivirus
verified at: 2026-08-01
certainty: established

subject: ウイルス対策ミニフィルター
predicate: configuredBy
object: 除外設定(フォルダー除外)
description: ウイルス対策のミニフィルターがどのパスをスキャン対象から外すかは、除外設定で構成する(効くのはその設定を持つ製品自身のフィルターだけ)
evidence: configure-exclusions-microsoft-defender-antivirus
verified at: 2026-08-01
certainty: established

subject: Dev Drive
predicate: mitigates
object: スキャンによる性能コスト
description: Dev Driveでは既定でMicrosoft Defenderがパフォーマンスモード(非同期スキャン)で動作し、開発ワークロードの性能コストを緩和する
evidence: dev-drive
verified at: 2026-08-01
certainty: established

subject: Dev Drive
predicate: mitigates
object: 保護レベルの低下
description: フォルダー除外の安全な代替(secure alternative to folder exclusions)と位置付けられ、除外ほど保護レベルを下げずに性能とのバランスを取れる
evidence: dev-drive
verified at: 2026-08-01
certainty: established

subject: ウイルス対策ミニフィルター
predicate: recommendedFor
object: Dev Drive
description: Dev Driveでもパフォーマンスモードで動作するウイルス対策フィルターを維持することが前提で、フィルターを完全に外す運用は重大なセキュリティリスクだと公式に警告されている
evidence: dev-drive
verified at: 2026-08-01
certainty: established

subject: フィルターマネージャー(FltMgr)
predicate: uses
object: FltMgrフレーム
description: レガシーフィルターとの共存のため、FltMgrは複数の「フレーム」としてI/Oスタックの複数箇所にアタッチできる
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: FltMgrフレーム
predicate: verifiedBy
object: fltmc
description: fltmc filtersの出力のFrame列で、各フィルターがどのフレームに属しているかを確認できる
evidence: blocking-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: レガシーフィルター
predicate: uses
object: ドライバーオブジェクト
description: レガシーフィルターも、デバイスオブジェクトをスタックへ積むための通常のカーネルドライバー(ドライバーオブジェクト)として実装される
evidence: about-file-system-filter-drivers
verified at: 2026-08-01
certainty: established

subject: ミニフィルター
predicate: uses
object: ドライバーオブジェクト
description: ミニフィルターも、FltMgrに登録されるカーネルドライバー(ドライバーオブジェクト)として実装される
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: フィルターマネージャー(FltMgr)
predicate: requires
object: デバイススタック
description: FltMgr自身もOS付属のフィルターとしてファイルシステムのデバイススタックに立ち、個々のミニフィルターはそのFltMgrにコールバックを登録する
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established

subject: フィルターマネージャー(FltMgr)
predicate: uses
object: ドライバーオブジェクト
description: FltMgrはWindowsに付属するカーネルモードドライバーであり、ミニフィルタードライバーの開発を簡素化する機能を公開する
evidence: filter-manager-concepts
verified at: 2026-08-01
certainty: established