問題タブ [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 投票する
1 に答える
233 参照

driver - .reload コマンドの後にターゲットへの接続が失われる

WinDbg: ファイル -> シンボル ファイル パス? パスを次のように設定しました: Srv*c:\symbols*https://msdl.microsoft.com/download/symbols このパス ファイルの設定後、この例を作成しようとしています: https://msdn.microsoft.com/en-us/library/windows/hardware/mt269367 セクション 5 のステップ 2 で.reload /fデバッガーがターゲットへの接続を失いました。シンボル ファイルのパスを設定しないと、WinDbg も同じ時点で壊れてしまいます。

私にとっては、windbg がターゲットへの接続を失い、再度確立されないようです。VM でターゲット システムを再起動しても。

誰かが何が起こっているのか、何が間違っているのか、なぜこれが起こるのか教えてもらえますか??

VMWare Player を使用しています。私のホストとターゲット OS は Windows 10 Pro です。VMWare は、NAT でネットワークを使用するように構成されています。Echo ドライバーが正常にインストールされました。

以下では、WinDbg ログを確認できます。

よろしく。

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

c - リンク: エラー LNK2001: 未解決の外部シンボル NtProcessStartup

Windows ドライバーの開発とミニフィルターは初めてで、コマンド ライン ツールを使用してnullFilterサンプルをビルドしようとしています。そこで#pragma comment(lib, "FltMgr.lib")、.c ファイルに追加し、次のコマンドを正常に発行しました。

ただし、sysファイルを作成しようとすると:

VS2012 Express と WDM8 を使用しています。私のLIB環境変数は次のとおりです。

私は何を間違っていますか?何か不足していますか?

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

windows - acpi イベント通知を登録する方法は?(AcpiInterfaces.RegisterForDeviceNotifications)

今、acpi driver に関数を追加したいと思います。関数は次のとおりです。 BIOS Notify を取得します。私はいくつかのドキュメントを検索し、コードを書きます

CompletionRoutine は STATUS_SUCCESS を返しますが、インターフェイスはまだ空です...

Parameters.QueryInterface.Interface が満たされていません...誰か助けてくれますか??? MSDN IRP_MN_QUERY_INTERFACE について ここにリンクの説明を 入力 ここに画像の説明を入力

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

windows - C (カーネル モード ドライバー) を使用して Windows カーネル ダンプを作成する

Windows でカーネル モード ドライバーを使用して、完全なメモリ ダンプとカーネル メモリ ダンプを作成する必要があります。

WinDBG を使用して.dumpコマンドを実行するのと同じですが、コード内で実行する必要があります。

そうする方法はありますか?

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

windows - devmgmt の無効化とアンインストールを Windows ドライバー コードと区別するにはどうすればよいですか?

WDK7 の Microsoft Toaster のサンプル コードを調べていると、微妙な問題が見つかりました。

現在、Windows 7 でコンパイル済みドライバー (WDM busenum および WDM featuring1) を試しています。

READMEenum -p 1に従ってトースター デバイスを追加し、デバイス マネージャー (devmgmt) を開き、デバイスを見つけてアンインストールします。

devmgmt.msc からトースター デバイスをアンインストールします。

これにより、トースターのdevnodeが破壊されます(私は信じています)。ToasterDevice01ノードがデバイス マネージャーから消えていることがわかります。!devnode 0 1State=DeviceNodeUninitialized (0x301)、Previous State=DeviceNodeRemoved (0x312) のトースター devnode がまだ存在することを示しています。

次に、enum -p 1再度デバイスを追加しようとして実行します。しかし、エラー 0x57(ERROR_INVALID_PARAMETER) が発生しました。

enum -p 1 、0x57 エラーが発生しました

ソース コードをデバッグし、その理由を特定しましたbuspdo.c。devmgmt の無効化操作とアンインストール操作を区別していません。彼のコード ロジックは次のとおりです。

  • toaster がサプライズリムーブ( ) を取得した場合、どちらが正しい動作であるかをenum -u 1呼び出します。Bus_DestroyPdo()
  • toaster が devmgmt から Disabled になった場合、それはを呼び出しませBus_DestroyPdo()。これも正しいです。

問題は、エンド ユーザーが devmgmt からアンインストールを実行すると、Disable パスをたどるということです。ここで悪いことが起こります: Windows はトースター devnode を削除しますが、トースター バス ドライバーは対応する PDO を破棄しませenum -p 1Bus_PlugInDevice()。ユーザーリクエスト。

ここに画像の説明を入力

ところで:トースターのKMDFバージョンは同様の問題を示しています(今日は静的列挙バージョンのみが試行されました)

これで私の質問は明確になりました。無効化とアンインストールをどのように区別できますか?バス ドライバーまたは子デバイス ドライバーでそれを行う必要がありますか? KMDF版の回答も大歓迎です。

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

c++ - IRP_MJ_WRITE を使用した IoBuildAsynchronousFsdRequest

ディスク ドライバーで WDM フィルター ドライバーを開発しました。ディスクにデータを書き込む非同期リクエストを送信したいと考えています。writeBuffer関数内のメモリを削除すると、ウィンドウがクラッシュしWriteDataIRPCompletionます。

私の質問は、どうすれwriteBufferばクラッシュせずにメモリを安全に解放できるでしょうか?

これは私の送信リクエストコードです:

これは私の完了ルーチンコードです:

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

usb - Windows エラー コード 38 は、デバイス ドライバーがアンロードに失敗したことを示しています