問題タブ [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 - NdisFRegisterFilterDriver が NDIS_STATUS_FAILURE を返すのはなぜですか?
NDIS 中間フィルター ドライバーを作成しようとしていますが、何かが起こる前に行き詰まっています。
私のコードは、フィルター ドライバーを登録しようとする以外、まだ何もしていません。
他のすべての関数は空です (一部のトレース コードを除く)。ここでは関係ありません。
NdisFRegisterFilterDriver は常に NDIS_STATUS_FAILURE を返します。ドキュメントには、これが発生する理由は説明されていません。(DDK からサンプル ドライバーのリテラル コピーを試したので、.inf ファイルでは問題になりません。)
windows - Windowsフィルタリングプラットフォーム:パケットのペイロードへのアクセス
NET_BUFFERのMDLチェーンをトラバースして、関連するデータを取得しています。使用されたデータスペースがどこから始まるか(NET_BUFFER_DATA_OFFSET()
& )を示すために使用される2つのマクロはNET_BUFFER_CURRENT_MDL_OFFSET()
、同じ値を返すことを常に観察しており、どちらも同じように使用できるように見えるため、少し混乱しました。
どちらを使用する必要がありますか?それらの違いは何ですか?
windows - 特定のシナリオで、NDISMiniportドライバーをXPOSにロードできませんでした
USBコンポジットデバイスはさまざまな機能をサポートします。1つのインターフェイスがネットワーク機能をサポートします。OSごとに異なるNDISミニポートバージョンを開発しています(XP用のNDIS 5.1、Vista用のNDIS 6.1、Windows7OS用のNDIS6.20)。以下に示すように、1つのテストケースがあります。1)すべてのドライバー(シリアルおよびNDIS)をロードした後、ハイパーターミナルを使用してシリアルインターフェイスを開きます。2)通信を行います(ATコマンドなどを入力します)。デバイスを同じUSBポートに接続します。
上記のテストシナリオでは、XP OSでステップ4(エラーコード31)の後にNDISミニポートドライバーのロードに失敗します。NDISミニポートドライバーの初期化ハンドラーは呼び出されません。他のOSでは、この問題を再現できません。
この問題に関する貴重な提案を教えてください。
driver - ペーサー.sysはBSODを引き起こします
fxwrap.sys という名前の NDIS5 中間フィルター ドライバーを作成しましたが、アンインストールすると、. また、ndis!ndisOidRequestComplete がダンプ ファイルから null アドレスを読み取るようです。
env:windows 7 アルティメット 7601
fxwrap!PtRequestComplete 関数のソース コードは次のとおりです。
以下はダンプ情報です:
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1) 高すぎる割り込み要求レベル (IRQL) で、ページング可能な (または完全に無効な) アドレスにアクセスしようとしました。これは通常、ドライバが不適切なアドレスを使用していることが原因です。カーネル デバッガーが利用可能な場合は、スタック バックトレースを取得します。引数: Arg1: 00000000、メモリ参照 Arg2: 00000002、IRQL Arg3: 00000000、値 0 = 読み取り操作、1 = 書き込み操作 Arg4: 8a81bd11、メモリを参照したアドレス
デバッグの詳細:
READ_ADDRESS: GetPointerFromAddress: 84788848 から読み取ることができません 84767e20 00000000 で MiSystemVaType メモリを読み取ることができません
現在_IRQL: 2
FAULTING_IP: ndis!ndisOidRequestComplete+8a 8a81bd11 803b05
cmp バイト ptr [ebx],5CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT
BUGCHECK_STR: 0xD1
PROCESS_NAME: システム
trap_frame:8dd07aa0-(.trap 0xffffffff8dd07aa0)errcode = 00000000 eax = 00000200 ebx = 000000 ecx = 00000001 EDX = 00000000 ESI = 8D07B4C EDI = A2777F5A4 EIP = 8AD07444410744107444107410744107441074107410741074107 nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010246
ndis!ndisOidRequestComplete+0x8a:
8a81bd11 803b05 cmp バイト ptr [ebx],5 ds:0023:00000000=??
デフォルトのスコープのリセット
LAST_CONTROL_TRANSFER: 8a81bd11 から 846605fb へ
STACK_TEXT:
8dd07aa0 8a81bd11 badb0d00 00000000 8dd07ac0 nt!KiTrap0E+0x2cf
8dd07b34 8a81c8b9 8dd07b4c 8c840008 870c1618 ndis!ndisOidRequestComplete+0x8a
8dd07b68 952b411b 8963b0f0 a277f5a4 00000000 ndis!NdisFOidRequestComplete+0x6a
8dd07b88 8a81c19d 870c1618 8c840008 00000000 ペーサー!PcFilterRequestComplete+0x5b
8dd07bbc 8a843572 02d07bd4 00000000 89ac60e0 ndis!ndisOidRequestComplete+0x516
8dd07bf4 8a843805 00ac60e0 8c840008 00000000 ndis!ndisMOidRequestCompleteInternal+0xd0
8dd07c18 8a87a765 02ac60e0 00000000 8c840008 ndis!ndisCompleteLegacyRequest+0xdb
8dd07c38 95a831c5 89ac60e0 00000000 89ad20e0 ndis!NdisMSetInformationComplete+0x81
8dd07c54 8a87506f 8a1d48e8 8a1d4908 00000000 fxwrap!PtRequestComplete+0x61
8dd07c70 8a81c05b 876f54c0 8966f0f0 00000000 ndis!ndisCompleteOidRequestToRequest+0x4a
8dd07ca4 8a8704b2 00d07cbc 89ad20e0 8a85a000 ndis!ndisOidRequestComplete+0x3d4
8dd07ce8 8a823221 00ad20e0 8966f190 86a58638 ndis!ndisMDoOidRequest+0x528
8dd07d00 8469ca6b 8966f188 00000000 86a58638 ndis!ndisDoOidRequests+0x4d
8dd07d50 84827fda 00000000 92ed9892 00000000 nt!ExpWorkerThread+0x10d
8dd07d90 846d01f9 8469c95e 00000000 00000000 nt!PspSystemThreadStartup+0x9e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19
STACK_COMMAND: kb
FOLLOWUP_IP: ペーサー!PcFilterRequestComplete+5b 952b411b 56
プッシュ esiSYMBOL_STACK_INDEX: 3
SYMBOL_NAME: ペーサー!PcFilterRequestComplete+5b
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: ペーサー
IMAGE_NAME: ペーサー.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bc916
FAILURE_BUCKET_ID: 0xD1_pacer!PcFilterRequestComplete+5b
BUCKET_ID: 0xD1_pacer!PcFilterRequestComplete+5b
フォローアップ: MachineOwner
ご意見ありがとうございます。
c - PNDIS_GENERIC_OBJECT エラー C2061
PNDIS_GENERIC_OBJECT
変数を宣言した後、コンパイラ エラーが発生します。なぜこれが起こるのですか?どうすれば回避できますか?
エラー C2061: 構文エラー: 識別子 'gNdisGenericObj'
エラー C2059: 構文エラー: ';'
windows - NDIS バージョンの移行
NDIS 6.0 と NDIS 6.30 の主な違いは何ですか? 以下、私が知っている情報ですが、
NDIS 6.0 の場合、WWAN メディアのようなものはありませんでした。NDIS 6.0 では、WWAN 固有の OID も使用できませんでした。したがって、TCP/IP は 802.3 ヘッダーで送信するために使用されます。NDIS 6.0 には WAN のみが存在していました。
その後、NDIS 6.20 以降、WWAN と呼ばれるメディアが導入され、TCP/IP が生の IP パケットを直接送信していました。また、WWAN 固有の OID もここで導入されました。
これは正しいです?また、NDIS 6.0 バージョンから NDIS 6.30 に移行する方法は? バージョンを変更するには、正確に何をする必要がありますか? それは何に影響しますか?上記の質問は、ミニポートドライバーの実装に関するものです。
前もって感謝します。
c - OSRドライバーローダーエラーを使用したドライバーの読み込み
OSRドライバーローダーを使用してドライバーをロードできません。ドライバへのパスを指定し、サービスを正常に登録しましたが、[サービスの開始]をクリックすると、「指定されたファイルが見つかりません」というエラーメッセージが表示されます。
具体的には、サンプルからドライバーを作成しようとしました。
http://www.ndis.com/ndis-ndis6/inspect/packetinspect.htm
何かアイデアはありますか?
device-driver - WinXPeNDIS5.1マルチポート
アルテラのイーサネットコアのおかげで、3つのNICを含む単一のPCIデバイスを用意します。WinXPe、つまりNDIS5.1に実装する必要があります。MVPは、コアごとにWDMドライバーを実装し、次に個々のWDMドライバーと通信する単一のNDISドライバーを実装することを提案しましたが、単一のNDISドライバーには複数のポートまたはチャネルの概念がないように見えるため、私にはわかりません。
DriverEntryで、イーサネットコアごとに1回NdisMInitializeWrapperと呼ばれるNDISドライバーがある場合はどうなりますか?同じDriverObjectを使用して毎回呼び出す必要がありますが、おそらく、呼び出しごとに異なるNdisWrapperHandleが返されます。この一意のNdisWrapperHandleは、他のすべてのNDISドライバー関数を呼び出すためのコンテキスト指定子として使用できます。
windows - マルチ VPN 動的ルート テーブル NDIS ミニポート ドライバーを実装する方法は?
ここで仮想アダプター イメージの説明としてポップされた NDIS ミニポート ドライバーを作成したいと考えています (VMWare のように)。その目的は、既存の接続された vpn 内部 IP (アダプター) にパケットを転送することです。多くの既存の vpn 接続が存在する可能性があります。私のドライバーは、異なるプロセスによってそれらの1つにパケットを転送します(プロセスは同じIPに接続している可能性があるため、異なる接続を区別するためのルートテーブルは機能しません)。
参照できるヒントや例はありますか? ありがとう。
windows - プログラムでNDISフィルタードライバーをインストールする
プログラムでNDIS6.0軽量フィルタードライバーをインストールするC++コードを記述しようとしています。WinDDK、オンラインの例、MSDNドキュメントを確認した後、以下のコードサンプルを作成しました。(わかりやすくするためにエラー処理はスキップされます)問題は、INetCfgClassSetup::Installが常にエラー0x8004a024を返すことです。(ヘッダーファイルにエラーコードが見つかりませんでした。)
同じ.infファイルを使用したドライバーの手動インストールは問題なく機能します。
WinDDKのBindviewサンプルは、INetCfgClassSetup :: SelectAndInstallを呼び出すパスをとる限り、ドライバーを正常にインストールします。INetCfgClassSetup::Installを使用した代替パスは機能しません。
私のマシンではカーネルのデバッグが有効になっているため、ドライバーの署名は必要ありません。
以下のコードに何か問題がありますか?
ありがとう。