フィルター ドライバーには、次の特性があります。
フィルター ドライバーのインスタンスは、 フィルター モジュールと呼ばれます。 フィルター モジュールは、基になるミニポート アダプターにアタッチされます。 同じフィルター ドライバーまたは異なるフィルター ドライバーから複数のフィルター モジュールを 1 つのアダプターに積み重ねることができます。
このようなドライバーと基になるミニポート ドライバーの間にフィルター モジュールがインストールされている場合、代替機能を提供するために、基になるプロトコル ドライバーは必要ありません (それ以外の場合、フィルター モジュールは、上にあるプロトコル ドライバーに対して透過的です)。
フィルター ドライバーは中間ドライバーのような仮想ミニポートを実装しないため、フィルター ドライバーはデバイス オブジェクトに関連付けられません。 上にあるフィルター モジュールを備えたミニポート アダプターは、ミニポート アダプターの変更されたバージョンとして機能します。 ドライバー スタックの詳細については、「 NDIS 6.0 ドライバー スタック」を参照してください。
NDIS は、正しいドライバー スタックの順序でアダプターにフィルター モジュールをアタッチする構成情報を使用します。 フィルター モジュールのドライバー スタックの順序の詳細については、「フィルター ドライバーの INF ファイルの設定」を参照してください。
NDIS は、動的に挿入またはドライバー スタック内のフィルター モジュールを削除またはスタック全体を破棄せずに、フィルター モジュールを再構成できます。 詳細については、「 実行中のドライバー スタックの変更」を参照してください。
プロトコル ドライバーは、NDIS がドライバー スタックを再起動するときに、ドライバー スタック内のフィルター モジュールの一覧を取得できます。
フィルター モジュールの一覧の詳細については、 NDIS_PROTOCOL_RESTART_PARAMETERSを参照してください。
フィルター ドライバーは、基になるミニポート アダプターとの間のほとんどの通信をフィルター処理できます。 フィルター モジュールは、上にあるプロトコル ドライバーとミニポート アダプターの間の特定のバインドに関連付けされていません。 フィルター ドライバーが提供できるフィルター 処理サービスの種類の詳細については、「 フィルター ドライバー サービス」を参照してください。
フィルタードライバーは、フィルターが適用されるサービスを選択でき、フィルターが適用されないサービスをバイパスできます。 バイパスされるサービスとフィルター処理されるサービスの選択は、動的に再構成できます。 詳細については、「 データ バイパス モード」を参照してください。
NDIS は、フィルター ドライバーのコンテキスト空間 ( NET_BUFFER_LIST_CONTEXT構造体を参照) の可用性を保証します。 そのため、フィルター ドライバーは、コンテキスト領域を取得するためにバッファーをコピーするコードを含める必要はありません。 バッファーを管理する方法の詳細については、「 フィルター ドライバーバッファー管理」を参照してください。