4

私は DDK/WDM ドライバー開発分野の初心者です。仮想デバイス ドライバーを x86 から x64 (インテル) に移植するタスクがあります。ソースコードを入手し、少し修正して、DDK (ビルド環境) で正常にコンパイルしました。しかし、ia64 Windows7 マシンにロードしようとすると、ロードしませんでした。次に、デバイスドライバーの簡単な例をいくつか試しました

-- http://www.codeproject.com/KB/system/driverdev.aspx (ハイパーリンクを投稿できるように「--」を付けました) および他のリンクからでも同じ問題が発生します。

リンクに使用している一部のライブラリが新しいマシンと互換性がなく、別の同様のライブラリにリンクするよう提案されているとフォーラムで聞きましたが、それでも機能しませんでした。

ビルドするときは、提案どおり「-cefw」コマンド ライン パラメーターを使用します。

*.inf ファイルが関連付けられていませんが、それを system32/drivers にコピーしています。WinObj を使用して、次回の再起動時にメモリに読み込まれるかどうかを確認しています。

また、このプログラム ( http://www.codeproject.com/KB/system/tdriver.aspx ) を試してドライバーをメモリにロードしましたが、それでもうまくいきませんでした。

助けてください...私はこれに行き詰まっており、締め切りはすでに過ぎています。何が間違っているのかを発見しようとして、ここで気が狂っているように感じます。

4

3 に答える 3

1

したがって、すべてを要約すると:

  1. corect アーキテクチャ (Intel/AMD CPU の場合は x64) 用にビルドする必要があります。
  2. ドライバーに署名する必要があります。これは、自己署名証明書を使用したテスト モードでも行う必要があります。代替手段はありません。
  3. インストールには .inf ファイルを使用する必要があります。ドライバーが非 pnp の場合、.inf ファイルは必要ありませんが、ドライバーが非 pnp である可能性はほとんどありません。その場合は、サービス コントロール マネージャーで sc.exe を使用して、または SCM API を使用してプログラムで、ドライバーに関連付けられたサービスを手動で作成する必要があります。ドライバーが pnp である場合 (ほとんどの場合)、.inf ファイルを介して (devcon.exe またはその他の方法で) インストールする必要があります。また、インストールはロードと同じではありません。そのためには、適切なハードウェアが存在するか、ソフトウェアでそれを列挙する必要があります (たとえば、devcon.exe を使用)。
于 2010-03-20T00:17:18.253 に答える
0

2つのこと:

  1. x64 (x86-64、AMD64、または EMT64 とも呼ばれます) と IA64 (Itanium) の両方について言及しています。2 つのまったく異なるアーキテクチャであることがわかりますよね? Itanium システムをお持ちですか? そうでない場合は、IA-64 ビルド環境を使用して何もコンパイルしないでください。標準の PC (32 または 64) では動作しません。

  2. 64 ビットでは、ドライバーは運用環境で使用するためにデジタル署名する必要があります。Verisign などから Authenticode 証明書を取得する必要があります。テスト目的で、起動時に F8 を押して署名チェックをバイパスできます。テスト証明書で署名することもできます。

    http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx

于 2010-03-18T13:53:32.523 に答える
0

私はドライバーを書きませんでしたが、同僚から聞いた情報に基づいて: あなたのドライバーはデジタル署名されていますか? そうでない場合は、64 ビット システムでの署名されていないドライバーのロードに関する情報を探してください。

于 2010-03-17T19:39:28.230 に答える