NDIS はじめに

実際、約束どおり、NDISサブシステムとそれに関連するものに関する一連の記事を開始します。 私はそれを最初の仕事で自分のトレーニングのプロセスと結びつけることにしました。 サイクルがうまくいかない場合、それは私が完全に圧倒されたか、やめられたことを意味します。



エントリー





一般に、なぜこのNDISなのか? すべてがとても良いのに、なぜそれを思いついたのですか?



NDISはWindowsカーネルのサブシステムの1つであり、ネットワークカードドライバーからネットワーク層プロトコルのインターフェイスに至るまでのスペクトルに直接関連しています。 NDISは、いわゆる ドライバースタック(ただし、私にとっては、これはスタックではなくキューです)が、一般的な理解のために、次のように想像する方がよいでしょう。



画像







良いですが、これは私には十分ではありません!





少し深く掘り下げると、NDISは必須の部分-それ自体(NDIS.SYSファイル)と、理論的には無制限の数のユーザードライバーで構成され、この同じNDIS.SYSでラップされます。 同時に、NDISサブシステムがそれをローカルと見なし、ターンである「スタック」に統合できるように、ドライバーはいくつかのアクションを実行する必要があります。 最小条件は次のとおりです。





これらのドライバーはすべて、いくつかのタイプに分けられます。





多くの場合、フィルタードライバーと中間ドライバーは実際に作成されます。 残りは、独自のネットワークソリューションを作成している企業の小さなサークルに必要です。 XPの時代には、開発者はしばしば中間ドライバーを使用していました(フィルターがなかったため)。WindowsVista以降では、フィルターを使用する方が良いです。 それらはデバイス内でよりシンプルであり、主な機能(そして、私たちにとってはほとんどすべての場合-トラフィックの変更)はバタンと実行されます。 したがって、NDISの「上」を思い出すと、プロトコル(IP、IPX、ARP、RARPなど)があり、以下はネットワークカードです。 この間隔で、トラフィックに対してマジックスペルを実行します。



フィルタードライバーと中間ドライバーの正確な違いを見てみましょう。 したがって、トラフィックがネットワークに移動すると、つまり プロトコルからネットワークカードまで、NDISによって生成されたユーザードライバーのキューを通過します。 この行の途中(正直なところ、行に3つのドライバーがある場合、中間を見つける方法がわかりませんが、MSDNと議論することはできません)NDISには中間ドライバーがあります。 これらのドライバーは、未知のアルゴリズムに従って構築されますが、NDISはトラフィックが「スタック」内の各ドライバーを通過することを保証します。 中間ドライバーは、「上から」ブレンデです。 その上にあるドライバの場合は、ミニポートのように見えますが(実際のミニポートはまだかなり下にあります)、下からはプロトコルのように見えます(プロトコルははるかに上にあります)。 T.O. 中間ドライバは透過的であり、トラフィックのフィルタリングや変更ではなく、1つのプロトコルのトラフィックを複数のミニポート(ネットワークカードインターフェイスでもある)に「ブロードキャスト」するためによく使用されます。 さて、またはその逆:ネットワークカードトラフィックを複数のプロトコルで送信します。



わかりました、これはフィルタードライバーについてです。 ドライバーフィルターは、ネットワークカードからプロトコルへのトラフィックのパス上にも配置されるドライバーですが、キュー内の特定の場所は設定によって決まります。 ここで、ドライバーフィルターには2つのタイプがあることを理解しましょう(ドライバーの場所を設定するタイプとメインタイプを混同しないでください)。





名前から両者の違いは明らかですが、インストール中に両方のドライバーがインストールされ、正常に「動作」することに注意する価値があります。 つまり トラッキング機能を作成した場合、トラフィックが表示されます。 ただし、場合によっては、修飾子ドライバーを再起動する必要があります。 再起動がない場合は、トラフィックを監視できますが、たとえば、パケットをドロップします-いいえ。 機能的特徴。



次に、キュー内のフィルタードライバーの場所を見つけましょう。 キューの位置は、ドライバーの目的によって決まります。 ドライバーの目的(通常の目的、つまりこのドライバーの使用目的)は、インストール段階で.INFファイルにインストールされます。 予定の完全なリストは提供しませんが、写真の概要を説明します。 ドライバーがトラフィックを圧縮することを目的としている場合、.INFファイルで「圧縮」を示します。また、「暗号化」、ウェル、または「カスタム」の目的もあります。



ここでは、リスト全体を見つけることができます。 また、カスタムが最も基本的なドライバーであり、たとえば、スケジューラーが最も「トップ」であると言います。



おそらく今日はこれで十分でしょう。詳細はこちらをご覧ください。



msdn.microsoft.com/en-us/library/ff557563(v = VS.85).aspx



次回は、フィルタードライバーの最小限の実装について説明します






All Articles