問題タブ [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++ - カーネル ドライバーのデバッグ時に Visual Studio がデバッグ セッションを開始できない
Visual Studio 2013 から KMDF ドライバーをデバッグしようとすると、次のエラーが発生します。
Visual Studio 用 Windows デバッグ拡張機能
デバッグ セッションを開始できませんでした。エラー 8004005: 不明なエラー
エラーが発生する前に、ターゲット マシンにドライバーをインストールします。詳細を確認できるログ ファイルはありますか?
編集1:
ホストは Windows 7、ターゲットは VMWare ESXi にインストールされた Windows 8.1
編集2:
WINDBG でテストしたところ、次のログ出力が得られました。
デバッグに NET を使用する
WinSock 2.0 を開く
ソケットの初期化に失敗しました。エラー オン-2147467259
カーネル デバッガーが初期化に失敗しました。HRESULT 0x80004005
「不明なエラー」
次のメッセージボックスも表示されます。
を使用してカーネルのデバッグを開始できませんでした
ネット: ポート = 50230、キー = XXXXXXXXXXXXXXX パラメータ、HRESULT 0x80004005
winapi - KMDF ビルドの種類
Windows で Visual Studio 2013 を使用してカーネル モード デバイス ドライバー (KMDF) をビルドする場合、32 ビットおよび x64 ビットのビルド オプションがあります。問題は次のとおりです: デバイス ドライバーをターゲット マシンにインストールする場合、32 ビット ビルドは 64 ビット OS で実行されますか、それとも 64 ビット OS で x64 ビルドを取得する必要がありますか?
(x64 ビルドは 32 ビット OS では動作しないと想定していますが、ここでも洞察をいただければ幸いです)。
kernel - x86 では、OS が割り込みを無効にすると、それらは消えますか? それともキューに入れられ、割り込みが再び発生するのを「待機」しますか?
私のプラットフォームは、Windows 上の x86 および x86-64 です。
割り込み優先システムのポイントは、最も優先度の高い割り込みを他の割り込みよりも優先させることです。これを強制するために、高レベルの割り込みの ISR が完了するまで、Windows は低レベルのすべての割り込みを完全に無効にすると推測しています。
しかし、CPU が割り込みをリッスンしていない場合はどうなるでしょうか? 彼らはただ静かに消えますか?それとも、割り込みが再び有効になるのを待って、ハードウェアでキューに入れられていますか? それらが保管されている場合、どこに保管されていますか?キューに入れる人数に制限はありますか? 未処理の割り込みが多すぎるとどうなりますか? 割り込み処理が未処理になるまれな状況が発生した場合に備えて、問題を検出するためにどのような手段が存在しますか?
windows - .inf の Windows インストール パッケージを作成する方法
以下の手順を実行しました。 1. テープ デバイス ドライバをエミュレートするカーネル ドライバをビルドしてコンパイルします。2. 必要な .inf を作成 3. 必要な .cat を作成 4. ファイルに署名 5. 手動で「右クリック」してテスト -> エクスプローラーから .inf ファイルにインストール
これで、より簡単なインストール パッケージを実行する準備が整いましたが、これを行う方法がわかりません。
ディレクトリ C:\drivers を作成しようとしました。ここで、以下を含む dpinst.xml ファイルも作成しました。
そしてdpinst.exeをコピーし、.inf、.cat、および.sysファイルをコピーしたサブディレクトリ「ストレージ」を作成しました
このディレクトリから dpinst.exe をダブルクリックしてインストールしようとすると、「不要(更新用のデバイスがありません)」というメッセージが表示されます
しかし、これは PnP デバイス ドライバーではありませんか? KMDF(カーネルデバイスドライバー)ですか?
インストール パッケージの作成方法を知っている人はいますか?
よろしくトーマス