2

背景: NDIS フィルターの中間ドライバーを作成する必要があります。このドライバーは、メタデータ (主にタイミング情報) を収集している間、すべてのトラフィックを渡します。ドライバーは、メタデータを含む独自のパケットを挿入し、それらをスタックに渡すことによって、この情報をユーザー アプリケーションにエクスポートします。

私の質問は、NDIS のバージョンに関するものです。最終的には、Windows XP と 7 の両方のドライバーを作成する必要があります。ただし、現時点では、概念実証/プロトタイプとして、これらの 1 つだけを実装する予定です。NDIS 6 では、フィルター ドライバーの作成を簡素化するために、フィルター機能を一般的な中間ドライバーから別のドライバー タイプ (軽量フィルター) に分割したことを知っています。Microsoft は、DDK で NDIS 5 と 6 の両方のパススルー フィルター ドライバーの例を提供しています。これらの例を見てきましたが、NDIS 6 LWF はやや単純にしか見えません (確かに、私はまだ Windows ドライバー開発に慣れていません)。

他のすべての条件が同じであれば、最初に Win XP をサポートする方がよいでしょう (インストール ベースの拡大、テスト マシンへのアクセスの容易さなど)。ただし、NDIS 6 の軽量フィルターによって開発が迅速かつ容易になる場合は、最初に Win 7 ドライバーを実装したほうがよいかもしれません。

要するに: あなたの経験では、NDIS 6 は NDIS 5 と比較してフィルター ドライバーの開発を大幅に簡素化しましたか?

ご意見ありがとうございます。

4

2 に答える 2

3

WDK サンプル ドライバーを変更するだけであれば、おそらく NDIS 5 IM はそれほど手間がかかりません。私は NDIS 6 LWF ドライバーに詳しくないので、コメントできません。

または、 WinDivertWinPktFilterなどのユーザー モード パッケージを使用して、概念実証のプロトタイプを作成します。これは、ドライバー開発よりも簡単かもしれません。 開示:私はWinDivertを作成しました

于 2012-01-06T05:47:37.200 に答える
1

はい、実装の観点からは、NDIS 6.0 フィルター ドライバーは NDIS 5.x IM ドライバーよりも簡単ですが、それほどではありません。

主な違いは、フック インターフェイスとデータのカプセル化 (NDIS_PACKET と NET_BUFFER_LIST) です。しかし、それらをプライベート ネットワーク データ記述子に変換することは難しくありません。フック部分に WDK サンプル コード (パススルーとフィルター) を使用して、IM と LWF ドライバーの両方のプライベート ネットワーク データ記述子を処理する内部共通インターフェイスを設計できます。

于 2012-01-12T10:57:54.353 に答える