問題タブ [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.
visual-studio - 基本的な空の WDM ドライバーを作成する方法は?
Visual Studio 2013 にドライバーをビルドするよう説得しようとしています。しかし、Visual Studio 2013 がドライバーを正常にビルドするのを見たことがないので、問題を解決する方法がわかりません。
ですから、最初に戻る時が来ました。ソリューション全体を削除し、ビルドに失敗するまで、1 つずつ追加を開始します。ビルドする空のソリューションを取得できないことを除いて。
新しい空の WDM ドライバー プロジェクトを作成しましょう
Visual Studio 2013 では、次を選択します。
- ファイル、新規、プロジェクト
- テンプレート, Visual C++ , Windows ドライバー, WDM
- 空の WDM ドライバー
そして、私は今、新しい空のドライバーソリューションを持っています:
ビルドしようとした場合を除いて、失敗します:
SIGNTASK : SignTool エラー: ファイルが見つかりません: D:\Develop\TestDriver\MyDriver3\Win7Debug\MyDriver3.sys
このエラーは予期しないものではありません。ソリューションには、ファイルにビルドするためのコードさえありません。.sys
だから私はいくつかのコードを追加します
空の WDM ドライバー ファイルを追加して、空の WDM ドライバー プロジェクトを作成しましょう。
Source.c
これも失敗しますが、今回は前回とまったく同じエラー メッセージで失敗します。
SIGNTASK : SignTool エラー: ファイルが見つかりません: D:\Develop\TestDriver\MyDriver3\Win7Debug\MyDriver3.sys
これは理にかなっていますが、MyDriver3.sys
ファイルはありません。そのフォルダにも、どこにもありません。.sys
ここにはファイルがありません。あそこにもファイルはありません.sys
。.sys
どこにもファイルがありません。
基本的な空の WDM ドライバーを作成する方法は?
だから、これは私に質問を残します:
基本的な空の WDM ドライバーを作成するにはどうすればよいですか?
.sys
Visual Studio がファイルを作成しても、次のエラーで失敗するだけではないかと心配しています。だから私が望むのは、空の WDM ソリューションの典型的な例です - それは構築されます。
ボーナスリーディング
windows - ドライバー サービスを手動で展開する方法は?
Windows フィルター ドライバーを手動で展開または登録するにはどうすればよいですか?
警告: この先には、多くの「研究努力の証拠」があります。読みたくない場合は、これ以上読む必要はありません。私は、あなたがすべきこと、MSDN の言うこと、インターネット上の誰かがこれまでに提案したことすべてを試したことを詳細に指摘しただけです。
tl;dr:意図した方法は何ですか?
バックグラウンド
Visual Studio 2013 で開発された 64 ビット ドライバーを 64 ビット Windows マシンに展開するテストを行っています。ドライバーサービスをWindowsに登録して起動したい。
何を試しましたか
Visual Studio 2013 ドライバー展開機能
Visual Studio の機能を使用して、リモート マシンに自動的にデプロイするのが理想的です。残念ながら、うまくいきません ( 「拡張エラーが発生しました」 ) 。
新しいハードウェアの追加ウィザードの使用
Windows の新しいハードウェアの追加ウィザードを使用するのが理想的です(MSDN ページの「ハードウェアの追加ウィザードを使用してドライバー パッケージをインストールする」を参照してください)。幸いなことに、Windows 7 以降、Microsoft は新しいハードウェアの追加ウィザードをコントロール パネルから削除しました。手動で実行する必要があります。
Hdwwiz.exe
管理者特権のコマンド プロンプトから. 残念ながら、新しいハードウェアの追加ウィザードを使用してドライバーパッケージを追加インストールすることはできません。ウィザードはこれを認識しているため、ドライバー サービスをインストールすることはできません。
SC コマンド ライン ユーティリティ
sc.exe
管理者特権でのコマンド プロンプトからツールを使用して、サービス コントロール マネージャーにドライバー サービスを手動で登録するのが理想的です。残念ながら、ドライバー ファイルに有効なデジタル署名があっても、次のようになります。
Windows はドライバーのインストールを拒否します。
OSR のドライバー ローダー ユーティリティ
OSR の Driver Loader ユーティリティを使用するのが理想的です。ただし、有効にデジタル署名されたドライバー ファイルを使用しても、ドライバーはインストールされません。
.INF セットアップ ファイル
理想的には、ドライバ パッケージを展開し、.xml ファイルからインストールしてインストールし
.inf
ます。次に、INF を右クリックして、 [インストール] を選択します。しかし、それは機能しません。新しいドライバー サービスを登録しません。DefaultInstallセクションを使用した.INFセットアップ
.INF
理想的には、ファイルをDefaultInstallセクションで使用するだけです。Windows はDefaultInstallセクションを実行するだけです。残念ながら、MSDN は、これをドライバーに使用することは許可されていないと警告しています。注:ドライバー パッケージ の INF ファイルには、INF のDefaultInstallセクションを含めることはできません。
それができない理由は、DefaultInstallにAddServiceディレクティブがないためです。警告を無視してとにかく試しても、機能しません。新しいドライバー サービスは登録されません。
DefaultInstall.Services セクションを使用した .INF セットアップ
MSDN では、DefaultInstall を使用してドライバー サービスを登録しないように警告していますが、無視してこの
[DefaultInstall.Services]
セクションを使用できます。幸いなことに、実際にドライバー サービスをインストールしようとします。しかし、Windows はドライバーが署名されていないと主張します。
実際に登録されているドライバー サービスはありません。
SetupAPI InstallHinfSection 関数
理想的には、SetupAPI を使用して、上記と同等のコマンド ラインを実行できます。
ドライバーがインストールされないことを除いて。関数は正常に戻ります。しかし、Windows はドライバーが署名されていないと判断します。
BCDEDIT を使用して TESTSIGNING を有効にする
理想的には、昇格したコマンドプロンプトから実行するように指示されている The TESTSIGNING Boot Configuration Optionの指示に従います。
エラーで失敗することを除いて:
/li>BCDEDIT を使用して DEBUG をオンにします
理想的には、Installing an Unsigned Driver during Development and Testの指示に従います。これは、昇格したコマンド プロンプトから実行するように指示されています。
エラーで失敗することを除いて:
/li>高度な回復オプションを使用してドライバー署名の強制を無効にする
理想的には、高度な回復オプションを使用して、ドライバー署名の強制を無効にします。
ただし、Windows の起動後もドライバーの署名が有効になっています。
BIOS でセキュアブートを無効にする
理想的には、この仮想 Hyper-V コンピューターでは、仮想 BIOS で SecureBoot を無効にします。
次に、ドライバー署名ポリシーを無効にしてみてください。
そして、これで3日間。マイクロソフトの誰かに説明してもらいたい:
- 開発中にドライバーをテストする正しい方法だけでなく、
- しかし、上記の各試みが失敗した理由を詳細に説明するために
適切な方法は何ですか
ランダムなことを何度も (何度も何度も何度も) 試すのではなく、フィルター ドライバー サービスをインストールする正しい方法は何ですか?
ボーナス質問
Microsoft が開発者の生活を楽にすることを拒否するのはなぜですか?
ボーナスおしゃべり
ドライバー ファイルは、有効で信頼できる証明書で署名されています。
.sys ドライバー ファイルに署名する証明書も、ローカル コンピューターの 信頼されたルート証明書ストアにあります。
これが、ドライバー ファイルの署名が有効で信頼できる理由です。
MSDN の任意のページにある使い捨てのコメントには、ローカル マシン ストアの 2 つの場所にテスト証明書を追加する必要があると書かれています。
ドライバー ファイルに署名を埋め込んだり、ドライバー パッケージのカタログファイルに署名したりするために使用されるテスト証明書を、
- 信頼されたルート証明機関の証明書ストア
- 信頼できる発行元の証明書ストア.
これは、証明書を別のストアに追加した理由を説明しています。
Windows 10 テクニカル プレビュー、64 ビット
ボーナスリーディング
visual-studio-2013 - エラー: このテンプレートは、コンポーネント アセンブリ 'Microsoft.DriverKit.DriverWizard' を読み込もうとしました
Visual Studio 2013 for WDM で空のプロジェクトを作成しようとすると、次のエラーが発生します。
エラー: このテンプレートは、コンポーネント アセンブリ 'Microsoft.DriverKit.DriverWizard, Version=6.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' を読み込もうとしました。この問題とこのテンプレートを有効にする方法の詳細については、プロジェクト テンプレートのカスタマイズに関するドキュメントを参照してください。
このエラーを取得する手順:
問題の原因や解決方法が分からないので、この問題を解決するために助けを求めてください。どんな助けでも大歓迎です。
c - Visual Studio - ntoskrnl.exe が見つかりません
Windows DLL を作成していて、wdm.h からいくつかの関数が必要です。ntoskrnl.lib とリンクしていますが、警告やエラーなしで find をコンパイルします。アプリケーションを実行すると、ntoskrnl.exe が見つからないと表示されます。ただし、その EXE は私の C:\Windows\System32 フォルダーにあります。何が起こっている?
windows - Wave Extensible Format を使用する場合
Wave ファイルの読み取りと書き込みを含むオーディオ ライブラリを作成しており、考えられる 3 つの Wave ファイル形式の違いは理解していますが、モノラルまたはステレオの PCM データを扱うときに拡張可能な形式をいつ使用するかは不明です。私はこれを主な参考資料として使用しており、拡張可能な形式をいつ使用するかの明白なケースを明確にしています。ただし、リンクには、PCM データが 16 ビットを超える場合は拡張可能な形式を使用する必要があると記載されていますが、Audacity を使用して 24 ビットまたは 32 ビットのオーディオをエクスポートしようとすると、拡張可能な形式は使用されません。
この場合、拡張可能な形式を優先する必要がある、またはすべてのファイルが拡張可能な形式を使用する必要がある場合、仕様には言及されていません。最新のライブラリは古い形式をサポートするでしょうか? すべてのケースで拡張可能な形式を使用してファイル書き込みを簡素化する必要がありますか?
アップデート:
フォーマット チャンクについて Microsoft からこのリソースを見つけました。私の理解では、PCM データは拡張可能な形式または 18 バイト形式を使用できますが、古い 16 バイト形式は廃止されています。Windows マシンで 16 バイトのヘッダーを持つ WAVE PCM ファイルを再生できるかどうか知っている人はいますか? ヘッダーが 16 バイトの 24 ビット PCM はどうですか? これは、オンラインで見つけた別のエッジ ケースです。Windows のイメージがないので、自分で確認できません。
windows - VS 2013 で WDM を構築する方法を知る方法や場所はありますか?
ルートキットについて知ったので、サンプルコードを練習しようとしましたが、wdm ドライバーをビルドできません (KMDF しかできません)。
VS 2013 で学習する方法または良い場所を教えてもらえますか??
(または、KMDF を使用したルートキット チュートリアルの良い例)
c++ - WinXP x64 をターゲットとする WDM ネットワーク ドライバーの作成 - どこから始めればよいですか?
すべての C++ インストール オプションを含む Visual Studio Community Edition をダウンロードしました。次に、WinXP を対象としたWDKをインストールしました。ただし、VS はこれを認識できないようで、新しいプロジェクト ウィザードには WDM ドライバーを作成するオプションがありません。
私は以前にドライバーを作成したことがなく、それがどのように発生するのか、どのツールを使用できるのかについてあまり知らなかったので、そのようなオプションに依存していました。VS 自動化 IDE がこれに役立つことを願っていました。
そのような場合にどのように開始するかについてのアイデアはありますか?
編集:コミュニティVSバージョンはドライバーの作成をサポートしていないのでしょうか?
windows - 使用する NDIS のバージョンと、おそらくどの WDK か?
そのため、NDIS 5.0 用に作成された古い 32 ビット NIC ドライバーを移植しています。XP以降のすべての64ビットWindowsバージョンを(可能であれば)ターゲットにしています。使用する NDIS のバージョンは? 私が読んだことから、Windows XP x64はサポートされないため、6未満である必要があります-これは本当ですか(XPのx64バージョンはそれほど一般的ではないため、疑問に思っています)?
また、どのWDKバージョンを使用するか-私は7.1を考えていますが、新しい8.0、8.1、および10でさえ何らかの方法でWindows XP x64 NDISをサポートしているのかわかりませんか?
私が聞いているのは、NDIS のバージョンがすべて非常に異なっており、ドライバーを最初から書き直したくはないからです。
そして、私が疑問に思っている別の質問 - NDIS は WDK と何の関係がありますか? WDK にもバージョンがありますか (質問がばかげている場合は申し訳ありませんが、これまでドライバーを開発したことがありません)。NDIS-WDM ドライバーがあることがわかりました。