問題タブ [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.
windows - 誰が IRP を処理し、どの IRP をどの順序で送信するかを決定しますか?
WDM でトースター ドライバーをデバッグしているときに、Bus_PnP には IRP スタックがあり、どのマイナー関数が処理されるかが割り当てられますが、どのマイナー関数が処理されるかを IRP スタックに割り当てる人がいます。
windows - USB High Speed EHCI 2.0 ハブを強制的に Full Speed UHCI/OHCI デバイスとして列挙する
Windows XP SP3 には、EHCI USB 2.0 高速ハブをホスト レベルで UHCI または OHCI フル スピード デバイスとして列挙できるレジストリ キーまたは何らかの設定があり、おそらくレジストリのデバイス レベルでもありますか?
USB 1.1 フルスピード デバイスが、高速ハブ上のトランザクション トランスレータ バッファで無限に NAKd 分割トランザクションが原因でデッドロックするという問題が発生しています。これは、フル スピード デバイスが 2.0 高速ハブの背後に接続されている特定の状況でのみ発生します (XP SP3 のみ)。Microsoft に問題を報告しましたが、これは既知の問題であり、この問題に対する修正プログラムはありません (開発される予定もありません)。Vista+では修正されています。
デバイスがホスト コントローラに直接接続されている場合、または高速ハブのアップストリームにフル スピード ハブがある場合、問題は解消されます (分割トランザクションがないため)。そのため、高速ハブを強制的に全速デバイスとして列挙する方法があれば、それが役立つ可能性があります。
さらに、ハードウェアの設計もしっかりしています。システムが開発されましたが、フルスピードのハブ チップを設計のどこにでも挿入したり、デバイスをルート ハブに直接接続したりする方法はありません。最後に、システムの OS をアップグレードするオプションはありません。
windows - DevicePath からの USB PID VID の抽出
SetupDiGetDeviceInterfaceDetail を使用して、接続されている USB デバイスに関連する SP_DEVICE_INTERFACE_DETAIL_DATA を取得すると、DevicePath という文字列が返されます。
返される文字列は、次の例のようにフォーマットされます。
\?\usb#vid_abcd&pid_1234#000000000#{xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
質問 : この文字列の書式設定/構文はどこかに文書化されていますか、または Windows XP/Vista/7/8 のすべてのバージョンで信頼できることが知られていますか?
参照されているデバイスを識別するために、この文字列から VID および PID 値を抽出するコードを試していますが、これが VID および PID 値を取得するための堅牢な方法であるかどうかを知りたいです。
ruby - WDM Gem の使用時に Guard がサイレントに終了する
Windows で wdm を Guard と組み合わせて使用しようとすると、guard がサイレント モードで終了します。ただし、ポーリングを強制すると、ガードは正しく機能します。おそらくこれを説明する最良の方法は、例を使用することです。wdm でガードを実行すると、次のようになります。
ただし、guard に変更のポーリングを強制すると、guard コンソールで終了することで正しく動作します。
誰かがこの問題に光を当ててくれることを願っています。かなり調べてみましたが、この質問に対する答えを見つけることができませんでした。
私の Gemfile からの関連する抜粋:
私のガードファイル:
visual-studio-2012 - ハードウェア割り込みをキャッチする
デバイス ドライバー (カーネル レベル) を作成しています。私はカーネル空間に慣れていないので、ハードウェア割り込みを理解するのに助けが必要です。
Windows 7 用の新しいハードウェア用のドライバーを作成しています
すべてのソフトウェア割り込みの割り込みサービス ルーチンを既に作成しました。
私の質問は、ハードウェア割り込みをキャッチする割り込みハンドラーの作成をどのように進めるかです。
継続的なポーリングは悪い考えなので、続行するための他のアイデアを提案してもらえますか
前もって感謝します
c++ - ソース コードを含む最小限の WDM ドライバー テンプレートはどこにありますか?
私はほとんど経験のないカーネル モード ドライバーに出会いました。これが私がやろうとしていることです:
- ドライバーを読み込むユーザー モード アプリケーションを用意します。
- 命令を送信するために、ユーザー モード アプリケーションに書き込みます。
- ドライバーが RDMSR 命令を Intel チップに送信するようにします。
- 結果をユーザー モード アプリケーションに返します。
この動作を実現するさまざまな方法 (バッファー I/O、直接 I/O、またはどちらでもない) について説明しているこの記事を読みました。
私の問題はこれです...この記事には、WDM ドライバーを構築する方法を表すコードが含まれており、Windows Driver Kit を使用して、ソース コードを含む既定の WDM プロジェクト テンプレートを作成および変更できると期待していました。しかし、Windows Driver Kit (WDK) をダウンロードしたとき、唯一の WDM ドライバー テンプレートは完全に空白で、ソース コードはありませんでした。
IoCreateDeviceを使用してデバイス オブジェクトを作成するソース コードを含む最小限の WDM ドライバー テンプレートの例はどこにありますか?