問題タブ [wdm]

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.

0 投票する
2 に答える
13264 参照

windows - WDM ドライバー、KMDF ドライバー、UMDF ドライバーの違いは何ですか?

Visual Studio 2012 で Windows ドライバー プロジェクトを作成する場合、さまざまなオプションから選択できます。

デバイスに適したドライバー モデルを選択するのに役立つページが MSDNにあります。ただし、WDM、KMDF、および UMDF ドライバーの種類の正確な違いと、どのモデルをいつ選択するかについては明確に説明されていません。

WDM、KMDF、および UMDF ドライバー モデルの違いに関する説明を探しているので、初心者の Windows ドライバー開発者が正しいモデルを選択するのは簡単です。

0 投票する
1 に答える
992 参照

windows - ProtocolBindAdapterルーチンの外でNdisOpenAdapterExまたは代替を呼び出す方法は?

有名なパケット キャプチャ ソフトウェアである WinPcap を NDIS 5.0 から NDIS 6.x に移植しています。すべての NDIS 5.0 機能を 6.0 バージョンに変換しようとしました。WinPcap ソースコード関数では、NdisOpenAdapter が Openclos.c の NPF_OpenAdapter によって呼び出されます。NDIS 6.0 の NdisOpenAdapterEx に変換しました。しかし、4 番目のパラメーター BindContext を設定する方法が見つかりません。NdisOpenAdapterEx の宣言はここにあります: http://msdn.microsoft.com/en-us/library/windows/hardware/ff563715(v=vs.85).aspx

また、MS は、「プロトコル ドライバーは、ProtocolBindAdapterEx 関数から NdisOpenAdapterEx を呼び出す必要があります。NDIS は、ProtocolBindAdapterEx のコンテキスト外で NdisOpenAdapterEx を呼び出そうとしても失敗します」と述べています。そのため、NPF_OpenAdapter で NdisOpenAdapterEx を呼び出すことはできないようです。NPF_BindAdapterEx 関数で呼び出す必要があります。ドライバー npf.sys を独自のバージョンに置き換え、Wireshark (パケット キャプチャ フロントエンド) を開始し、NPF_BindAdapterEx にブレークポイントを設定し、NPF_BindAdapterEx が NPF_OpenAdapter の前に呼び出されたことがないことを発見しました。したがって、NdisOpenAdapterEx を呼び出す前に BindContext パラメータを取得することは不可能です。

できるだけ小さな変更を加えて、WinPcap を NDIS 6.0 に移行したいだけです。この問題を解決するにはどうすればよいですか?</p>

これがOpenclos.cのコードです

0 投票する
1 に答える
2697 参照

windows - DISPATCH LEVEL 以上で非ページ プールからメモリにアクセスできる理由

私が知っているように、IRQL レベルがディスパッチの場合、非ページ プールからメモリにアクセスできます。ページ プールからメモリにアクセスしようとすると、その理由を知りたいですか?

0 投票する
0 に答える
1116 参照

audio - WDK から取得した MSVAD サンプル コードから仮想オーディオ ループバック デバイスを作成する方法を教えてください。

仮想オーディオ ループバック ケーブル/パイプライン (仮想オーディオ デバイス) を作成します。WDK と連携する MSVAD ソース コードは、デバイスの入力ポートに表示されるオーディオ データのキャプチャと保存のみを実行します。方法がわかりません。 CopyTo および CopyFrom 関数を実装して、VALC (Virtual Audio Device) の入力ポートにオーディオが表示され、VALC の出力ポートで利用できるように VALC を作成します (Virtual Audio Cable v4.13 と同様)。CopyTo のコーディングを手伝ってください。と CopyFrom 関数? VALC と同様の機能を持つオーディオ ループバック ドライバーのソース コードを入手しました。ここでは、コードのオーディオ ループ部分を記述しています。コードは機能していますが、出力には音楽とともにカチカチという音がします。このコードに関する貴重な提案/コードを期待しています。また、このコードの問題点を特定してください。

コード:

前もって感謝します :)

0 投票する
2 に答える
1138 参照

windows - WinDbg 自体はどのように機能しますか?

最近、Windows ドライバーの開発を開始しました。実際にドライバーをどのようにデバッグするのか疑問に思っています。私が持っているセットアップは->ホストとしてWin7、VMwareのゲストとしてXPで、シリアルポートを介してデバッグしています。

私が行った研究:

私が話していることはほとんどありません

デバッガーが単一の OS でどのように機能するかは既に知っています。その場合、デバッガーも同じ OS 上にあるため、どのプロセスが実行されているかがわかります。それは理解できます。しかし、ここでは、デバッガーはまったく異なる OS、まったく異なる環境上にあります。私は言うだけfile->open source filesで、ブレークポイントを設定できます!! さらに、ドライバーをロードすると、実際に壊れます。なぜ../どのように?thisXPのカーネルは、ドライバーのソースコードがあることをどのように認識しますか(ドライバーはカーネルの拡張機能であり、少なくともWDMであり、WDKについては知りません) 。そしてそれもその制御(環境)外ですか?つまり、ブレークポイントを使用して 10 個のファイルを開くことができますが、それは美しく機能し、失敗したりだますことはできません。

つまり、私が考えているのは、Win7 の windbg にソースを追加するたびに、そのソースからバイナリが作成され、XP がバイナリをロードするたびに、windbg が待機しているバイナリであるかどうかがチェックされるということです。上記のリンクで紛らわしいのは、Vikrant が、デバッガーがカーネル (XP) にプロセスをデバッグする意思があるかどうかを尋ねていると言っているということですname or id。 . ソース コードがありますが、300 個のファイルからビルドされたドライバーがあり、windbg でおそらく最も単純なファイルが 1 つだけ開いている場合を考えてみてください。

0 投票する
0 に答える
44 参照

windows - I/O Manager のモデルが WinXP から WinVista+ に変更されましたか?

WDM、I/O マネージャーなどを試しています。I /O マネージャーがどのように動作するかについて説明している thisに出会いました。私は知りたいです

  1. これはWDM(XP時代)にも当てはまりますか? FSDとすべて(!!)
  2. そうでない場合、当時の I/O マネージャーの詳細はどこで入手できますか?

読んでいる間、WDMにはなかったと信じているユーザーモードドライバーとカーネルモードドライバーのようなにおいがするので、私はこれを疑っています。

0 投票する
1 に答える
1691 参照

windows - バスに接続された 1 つのデバイスに対して 2 つのデバイス オブジェクト (PDO と FDO) を作成する必要があるのはなぜですか?

私はWindowsで新しく、WDMドライバーを読んでいるときに、デバイスオブジェクト(PDOとFDO)について遭遇しました。ドライバーをロードした後、ADDDeviceルーチンでFDOを再度作成する理由として、2つの異なるデバイスオブジェクトが必要な理由を視覚化できません。同じデバイスを表すため、そこで PDO を使用できます。