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