問題タブ [kmdf]
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.
c++ - DeviceIoControl 後のアクセス違反エラー
INOUT_PARAM をカーネル ドライバーに送信しようとしていますが、成功したようです。それを編集してアプリケーションに送り返そうとすると、次のエラーが発生します。
アプリケーションコードは次のとおりです。
ドライバーの IOCTL 関数は次のとおりです。
問題がどこにあるのかわかりません。助けていただければ幸いです。
前もって感謝します。
注: wp->RStr = "Test"; なしで INOUT_PARAM を送信すると、初期値を正常にエコーします。これは、ドライバーによる編集済みメモリの編集または読み取りが正しく機能していないことを意味します。
注 2: エラーは、n.RStr PCHAR 値を echo/cout した場合にのみ表示されます。
重要な注意: wp->PID = 6969; の場合 ドライバーで、次に echo(n.PID); それは実際に機能します... PCHAR が問題を引き起こしている理由はわかりませんが、これが最も可能性が高いです。それを修正する方法はありますか?
c - WDK ドライバーに hidpi.h を含めると、コンパイル エラーが発生する
Github ( https://github.com/Microsoft/Windows-driver-samples/tree/97cf8edcaddff4fdbc5cc48d56b7d7eb2c39b749/hid/vhidmini2 )の Windows ドライバー サンプルから KMDF vhidmini2 サンプルを変更しようとしています。私の変更の 1 つは、hidpi.h ヘッダー ファイルを含める必要があります。ただし、これを行うと、コンパイラ エラーが発生します。その大部分は次のとおりです。
いくつかと一緒に:
多くの構文エラーと同様に。
エラーを回避するために、vhidmini2 ドライバーをコンパイルして (正常に動作しました)、vhidmini.h ファイルに include ステートメントを挿入してみました (これにより、コンパイルが失敗します)。変更した vhidmini.h ファイルのインクルード セクションを次に示します。コードの残りの部分はそのままです。
余談ですが、同様の問題が Stack Overflow に投稿されているのを見つけました: WDK (Windows Driver Kit) and VC++ headers problem。この問題の解決策は、SDK ヘッダーをロードする前に、Visual Studio に WDK ヘッダーをロードするように指示することです。ただし、質問は数年前のものであり、Visual Studio 2015 では VC++ ディレクトリを同じ方法で編集することはできません。これが実際に私の問題の解決策である場合、新しい Visual Studio でこの編集を行うにはどうすればよいでしょうか? プロジェクトのプロパティ シートを見てみましたが、形式がまったく異なります。
kernel - カーネル モードの Win10 ドライバーの BSOD、C++ でキャッチする方法は?
カーネル モード ドライバーを介して別のプロセスのメモリを読み込もうとしています。それは機能しており、ドライバーを別のドライバーのスペースに挿入して機能させています(またはテストモードを有効にするだけです)。
ただし、うまく機能していますが、間違ったアドレスを指定すると、BSOD が発生します。
BSOD の一例に関する情報を次に示します。
ドライバーを別のドライバーに注入したため、シンボルなどが解決できません。いくつかの追加情報があります。
今私がやっていること:私はドライバーに4つの値を与え、読み出された値を書き込むためのグローバルバッファを持っています:
char buf[5000]; NTSTATUS DevioctlDispatch( In struct _DEVICE_OBJECT *DeviceObject, Inout struct _IRP *Irp ) ドライバーで行っていることはすべて複数の __try __catch/__except/__finally ブロックにあり、間違った読み取りを取得できることを望んでいました...プロセスを取得していますハンドルしてから、(ProbeForRead の後) RtlCopyMemory に渡します。
私はこれを頻繁に行っていますが、いずれにしてもデタッチするようにしました。
KeStackAttachProcess を使用する必要がありますか? BSOD はどこから来るのですか? エラーを間違ってキャッチしていますか? ありがとう!はい、私はユーザー空間アプリケーションから読んでいます。
inf - インストール時に kdmf pnp ドライバーがデバイスを検出できない
pnp ドライバーを作成しようとしていますが、実行するsc start driver-name
とシステム エラー 1058 が発生します (disable disabled または no enabled device associated)。ただし、nonpnp のコードを変更するWDF_DRIVER_CONFIG_INIT(&config, WDF_NO_EVENT_CALLBACK);
とconfig.DriverInitFlags |= WdfDriverInitNonPnpDriver;
、サービスが開始され、デバッグできるようになります。
デバイス マネージャーで検証したデバイスに対して、さまざまな hwid 値を試しました。DriverEntry は正常に動作します。windbg を使用しましたが、デバイス追加機能が呼び出されません。
pnp のドライバー エントリ コード。
c++ - Visual Studio 2015 カーネル デバッガーが動かなくなる
Visual Studio 2015 を使用して KMDF ドライバーを作成しようとしています。ドライバーを展開してデバッガーを起動しようとすると、すべてが機能しているように見えます。Visual Studio はソリューションをビルドしてターゲット コンピューター (仮想マシン) に展開できます。 )、しかし、ファイルの展開後、スタックしているようです: デバッガーを一時停止して、デバッガーのコマンドを実行できません。
私の質問: デバッガーを中断/一時停止するにはどうすればよいですか?
私が試したこと:
ネットワークとパイプの両方を使用してターゲット コンピューターに接続しようとしましたが、どちらも何も変わらないようです。
テスト証明書を「WDKTestCert」に設定しようとしました。
パッケージ プロジェクトをソリューションに追加しようとしました。
追加情報:
私のプロジェクトの構成は、MSDN hereに示されているものとまったく同じです。
私のホスト コンピューターとターゲット コンピューターは両方とも Windows 8.1 64 ビットを実行しています。
ターゲット コンピューターは VMWare 仮想マシンです。
Visual Studio 2015 バージョン 14.0.25123.00 Update 2 を使用しています。
WDK10を使用しています。
デバッガーのログ:
この時点以降、何も起こらないようです。
どんな助けでも大歓迎です。
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 ログを確認できます。
よろしく。