問題タブ [ndis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 署名付きドライバーを使用しない Windows 7 64 ビットでの ndisprot
署名付きドライバーを作成する前に、開発用に Windows 7 64 ビットで ndisprot 6 を実行できる可能性があると聞きました。誰かがこれを手伝ってくれますか?署名されたドライバーを作成することは、私が望んでいるものではありません。
Windows 32 ビットで問題なく ndisprot サンプル ドライバーを使用しています。未変更のサンプル ドライバーを開発/実行できるように Windows を構成する方法を教えてください。署名済みのサンプル ドライバーがあれば、それもありがたいです。
ndis - NDIS 6 LWF の 1 つの INF ファイルに 2 つのバイナリ
以前の NDIS 5.1 では、インストールされた OS に応じて、32 ビットまたは 64 ビットの sys ファイル バイナリをインストールする 1 つの inf ファイルを作成することができました。
現在、NDIS 6 LWF INF ファイルで同じことを試みていますが、[Install.Services] セクションを複製する方法がわからないため、OS は、32 ビットまたは 64 ビットのどちらのバイナリを取得するかを自動的に選択します。 1。
これにより、基本的に次の INF ファイル セクションに到達します。
[Daihinia_Service_Inst] には、上記の例の 32 ビット バイナリがあります。
[Install.Services] セクションが INF のどこにも明示的に参照されていないため、そこでフォークを作成できないことを考えると、それらを変更する方法についての洞察はありますか?
windows - ndis5.0 ドライバーおよびドライバー署名の強制を無効にする
「ドライバー署名の強制を無効にする」でndis 4.0をインストールしていました。ドライバーはエラーを出さず、正常に動作しています。ただし、ndis5.0 ドライバーの同じケースは機能しません。ndis5.0 は、ドライバー署名の強制を無効にしても機能しますか。または署名が必要です。
networking - NdisProt がイーサネット パケットを書き込むのに時間がかかる
ネットワーク アクセスが必要な仮想化アプリケーションを C# で開発しています。ndisprot サンプル ドライバーを使用して、イーサネット レイヤー 2 パケットの読み取りと書き込みを行っています。WriteFile 操作に膨大な時間がかかることを除いて、すべて正常に動作しています。通常は 300 ~ 800 ミリ秒ですが、書き込みが完了するまでに数秒かかる場合があります。
これは、イーサネット パケットをドライバーに書き込む C# 関数です。ストップウォッチを使用して、所要時間を測定しています。
アプリケーションを実行すると、出力は次のようになります。有線接続しています。
アプリケーションに ping を実行すると、応答時間は WriteFile の完了にかかる時間とほぼ一致するため、ハングアップがドライバーのどこかにあることがわかります。これを高速化するためにサンプル ドライバーでできることはありますか? 私は何を間違っていますか?
編集: 今日、内蔵アダプターの代わりに USB-Ethernet アダプターを使用してみましたが、パフォーマンスがさらに低下しました! 書き込みが完了するまでに 15 ~ 30 秒かかります。読み取りはほぼ瞬時に行われるため、これは非常に奇妙です。
Edit2: 私のドライバーには、読み取りスレッドと書き込みスレッドの 2 つのスレッドがあります。リーダースレッドを無効にすると、書き込みが即座に完了するようです。ファイルからの読み取りがファイルへの書き込みに影響するのはなぜですか?
windows - NDIS 6 の NdisChainBufferAtBack 置換
NDIS 6 でフィルター ドライバーを作成しています。NET_BUFFER の後ろにデータを追加したいと考えています。データを追加するために、NdisAllocateMdl
API を介して MDL を割り当てました。今知りたいのですが、この MDL を既存の MDL チェーンに追加するラッパーはありますか?
Next
そうでない場合、前回の MDL のポインタが新しく割り当てられた MDL を指すようにするのは正しいですか? また、追加された MDL を認識させるために変更する必要がある NET_BUFFER のフィールドは何ですか?
ndis - NDIS6 変更フィルター
元のパケットを独自のレイヤー プロトコルにラッピングすることを使用する NDIS6 用の変更フィルターに取り組んでいます。
独自のヘッダーを追加する前に、NdisRetreatNetBufferDataStart(pNetBuffer, sizeof(OurHeader), 0, NULL) を呼び出します。これは、http: //msdn.microsoftで説明されているように、NDIS がその「既定の」関数を介して独自に追加の MDL を割り当てることを前提としています。 .com/en-us/library/windows/hardware/ff570697%28v=vs.85%29.aspx (「エントリ ポイントが NULL の場合、NDIS は既定の方法を使用して MDL を割り当てます。」)
FilterSendNetBufferListsComplete の NdisAdvanceNetBufferDataStart(pNetBuffer, sizeof(OurHeader), TRUE, NULL) に注意します。
ただし、BSOD DRIVER_IRQL_NOT_LESS_OR_EQUAL が発生します。これは、IRQ ハンドラー内から一部のページ メモリがアクセスされたことを意味します (バグチェックの 3 番目のパラメーターで判断すると、読み取り操作)。
RetratXxx 呼び出しによってページ メモリが割り当てられ、そのデータを送信しようとしたときにミニポートがトラップされたのではないでしょうか? もしそうなら、その「デフォルト」のメモリ割り当て動作はどれですか?また、そのような場合に NdisRetreatNetBufferDataStart をどのように呼び出す必要がありますか?
ndis - NDIS6 の NetBuffer にヘッダーを追加する
NDIS6 LWF では、次のコード スニペットを使用して、DaiHdr と呼ばれる構造体をネットバッファーに追加してから送信します。
ただし、送信ルーチンに何か問題があるようです。特にこの作品が正しいかどうか誰かが教えてもらえますか?
windows - Windows でのアイドル状態のネットワーク フィルター ドライバーのパフォーマンス
Windows のネットワーク ドライバー フィルターに関する奇妙な問題に遭遇しました。ネットワークドライバーフィルターをインストールするだけでは、パフォーマンスが低下するようです。
1 ギガビット帯域幅接続のさまざまなシナリオをテストしていますが、CPU 割り込みが増加し、ネットワーク全体の使用率が低下しています。問題のインストール済みドライバーは、完全にパケット パススルー モードです (ユーザー モードに到達するパケットはありません)。
原因はドライバーですか、それとも、カーネル モードでパケットをスタック上の次のドライバーに渡すのではなく、何もしていない場合でも、インストールされているすべてのネットワーク フィルター ドライバーがパフォーマンスの低下を引き起こすのでしょうか?
このようなドライバーは仮想マシンにどのような影響を与えますか?
いろいろ調べても結論が出ません。どんなアドバイスでもとても感謝しています!